powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите по bcp
6 сообщений из 6, страница 1 из 1
Помогите по bcp
    #40098887
dedy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужна консультация по postgres\mssql\bcp.
пытаюсь пока для теста заполнить одну таблицу
DECLARE
@sql_str nvarchar(max),
@proxy_account sysname='bcp',
@proxy_password sysname='333333'
SELECT @sql_str='
DROP TABLE IF EXISTS ##t'+CONVERT(nvarchar(max),@@SPID)+'
CREATE TABLE ##t'+CONVERT(nvarchar(max),@@SPID)+' (
N int,
T datetime,
S varchar(256)
)'
EXEC (@sql_str)
SELECT @sql_str='
COPY (
SELECT N, T, md5((R*1000*random())::text) S
FROM generate_series(1,100,1) N
CROSS JOIN generate_series($$2020-01-01$$::timestamp,
$$2020-12-31$$::timestamp, $$1 day$$::interval) T
CROSS JOIN generate_series(1,100,1) R )
TO PROGRAM $pgm$ tmp_file=$'+'(mktemp /tmp/pgsql_bcp_to_mssql.XXXXXXXXX); '
+'cat > $tmp_file; /opt/mssql-tools/bin/bcp ''##t'''
+CONVERT(nvarchar(max),@@SPID)+' '
+'in $tmp_file -S '+REPLACE(@@SERVERNAME,'\','\\')
+' -U '+@proxy_account+' -P '''
+@proxy_password+''' -c -b 10000000 -a 65535; '
+'rm $tmp_file $pgm$ NULL $nil$$nil$;'
EXEC (@sql_str) AT [link_serv];
На постгресе я вижу что файл создаётся без проблем и заполняется, потом удаляется согласно самого запроса, но когда делаю
select * from ##t;
она пустая
Что упускаю ?
Заранее спасибо
...
Рейтинг: 0 / 0
Помогите по bcp
    #40098889
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedy
Что упускаю ?
Фазу заполнения таблицы из файла.

ЗЫ: Пользуйтесь средствами форматирования кода - читать же невозможно.
...
Рейтинг: 0 / 0
Помогите по bcp
    #40098894
dedy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

За форматирование учту, не могу уже отредактировать свой пост.



Код: sql
1.
2.
3.
4.
5.
+'cat > $tmp_file; /opt/mssql-tools/bin/bcp ''##t'''
+CONVERT(nvarchar(max),@@SPID)+' '
+'in $tmp_file -S '+REPLACE(@@SERVERNAME,'\','\\')
+' -U '+@proxy_account+' -P '''
+@proxy_password+''' -c -b 10000000 -a 65535; '



на сколько я понял то тут как раз идёт заполнение таблицы - или я не прав ?

Смотрел по этой статье
https://habr.com/ru/post/553472/ - там всё получилось.

Буду благодарен за помощь.
...
Рейтинг: 0 / 0
Помогите по bcp
    #40098904
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedy
invm,

За форматирование учту, не могу уже отредактировать свой пост.



Код: sql
1.
2.
3.
4.
5.
+'cat > $tmp_file; /opt/mssql-tools/bin/bcp ''##t'''
+CONVERT(nvarchar(max),@@SPID)+' '
+'in $tmp_file -S '+REPLACE(@@SERVERNAME,'\','\\')
+' -U '+@proxy_account+' -P '''
+@proxy_password+''' -c -b 10000000 -a 65535; '



на сколько я понял то тут как раз идёт заполнение таблицы - или я не прав ?

Смотрел по этой статье
https://habr.com/ru/post/553472/ - там всё получилось.

Буду благодарен за помощь.


Прежде чем колбасить PowerShell - напиши командную строку BCP ЯВНО и добейся работы.
...
Рейтинг: 0 / 0
Помогите по bcp
    #40098905
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedy
на сколько я понял то тут как раз идёт заполнение таблицы - или я не прав ?
Идет. Только хрен это заметишь в неформатированном коде...

Таблица у вас не ##t, как в этом фрагменте, а ##t + довесок из номера сессии.
И вообще не понятно зачем там bcp и глобальная временная таблица. Можно проще сделать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE #t (
N int,
T datetime,
S varchar(256)
);

insert into #t
exec('
SELECT N, T, md5((R*1000*random())::text) S
FROM generate_series(1,100,1) N
CROSS JOIN generate_series($$2020-01-01$$::timestamp,
$$2020-12-31$$::timestamp, $$1 day$$::interval) T
CROSS JOIN generate_series(1,100,1) R'
) AT [link_serv];
...
Рейтинг: 0 / 0
Помогите по bcp
    #40098953
dedy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

по описанию и тестам через линк сервер будет дольше, есть желание опробовать именно bcp так как нужно будет часто переносить данные между mssql \ postgres



aleks222, проверю спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите по bcp
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]