Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Параметры OPENROWSET BULK и BULK INSERT / 3 сообщений из 3, страница 1 из 1
31.10.2018, 14:02
    #39725815
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры OPENROWSET BULK и BULK INSERT
Есть рабочий insert
Код: sql
1.
BULK INSERT tempdb.dbo.books3 FROM 'C:\Gate\In\a.csv' WITH(DATAFILETYPE='widechar', rowterminator = '\n')


разделитель полей в файле - табуляция.

Никак не могу сообразить аналог DATAFILETYPE='widechar' для openrowset( bulk
Фишка в том, что файл C:\Gate\In\a.csv юникодный.
Код: sql
1.
2.
3.
4.
      select * from
      openrowset( bulk 'C:\Gate\In\a.csv' 
                      , FORMATFILE = 'C:\Gate\In\a.FMT'
                      ) as x;



Код: plaintext
1.
2.
3.
4.
5.
6.
'C:\Gate\In\a.FMT

11.0
3
1       SQLNCHAR             0       0       "\t"        1     x           ""
2       SQLNCHAR             0       0       "\t"        2     y           ""
3       SQLNCHAR             0       0       "\r"        3     z           Cyrillic_General_CI_AS

Для НЕ юникодного SQLNCHAR меняем на SQLCHAR и все - усе работает
Код: plaintext
1.
2.
C:\Gate\In\a.csv
20181101	SVX	BUD
...
Рейтинг: 0 / 0
31.10.2018, 14:22
    #39725836
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры OPENROWSET BULK и BULK INSERT
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
use tempdb;
go

create table dbo.test (id int, s nvarchar(100));
go

exec xp_cmdshell 'bcp tempdb.dbo.test format nul -T -w -f %TEMP%\FormatFile_test.fmt', no_output;
exec xp_cmdshell 'bcp tempdb.dbo.test format nul -T -w -x -f %TEMP%\FormatFile_test.xml', no_output;

exec xp_cmdshell 'type %TEMP%\FormatFile_test.fmt';
exec xp_cmdshell 'type %TEMP%\FormatFile_test.xml';

exec xp_cmdshell 'del %TEMP%\FormatFile_test.fmt', no_output;
exec xp_cmdshell 'del %TEMP%\FormatFile_test.xml', no_output;
go

drop table dbo.test;
go

?
...
Рейтинг: 0 / 0
31.10.2018, 16:18
    #39725975
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры OPENROWSET BULK и BULK INSERT
ешкин кот!

"\t" надо писать "\t\0"
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Параметры OPENROWSET BULK и BULK INSERT / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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