Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Простейший BULK INSERT  [new]
mixer.sz
Member

Откуда:
Сообщений: 3
Дяденьки, помогите, пожалуйста, всю голову уже сломал. Есть самый простейший файл, содержащий список названий файлов в папке. Необходимо его залить во временную табличку в БД с помощью BULK INSERT. Разделитель строк самый обычный \n . Не видит он этот разделитель и все тут. Что я делаю не так???

create table #FileData (TextLine nvarchar(4000))
bulk insert #FileData from 'test_.log' ,rowterminator='\n\r' with (firstrow=1,rowterminator='\n')
select * from #FileData

К сообщению приложен файл (test_.log - 2Kb) cкачать
16 янв 18, 19:07    [21111879]     Ответить | Цитировать Сообщить модератору
 Re: Простейший BULK INSERT  [new]
Remind
Member

Откуда: UK
Сообщений: 523
mixer.sz,

Попробуйте '\r\n'. Если не поможет то откройте ваш файл в каком-нибудь продвинутом редакторе аля notepad++ и посмотрите что там за символы для перевода строки.
16 янв 18, 19:45    [21111961]     Ответить | Цитировать Сообщить модератору
 Re: Простейший BULK INSERT  [new]
msLex
Member

Откуда:
Сообщений: 8002
mixer.sz
Дяденьки, помогите, пожалуйста, всю голову уже сломал. Есть самый простейший файл, содержащий список названий файлов в папке. Необходимо его залить во временную табличку в БД с помощью BULK INSERT. Разделитель строк самый обычный \n . Не видит он этот разделитель и все тут. Что я делаю не так???

create table #FileData (TextLine nvarchar(4000))
bulk insert #FileData from 'test_.log' ,rowterminator='\n\r' with (firstrow=1,rowterminator='\n')
select * from #FileData

Приложенный файл (test_.log - 2Kb)



https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql
Пример С

C. Using line feed as a row terminator
The following example imports a file that uses the line feed as a row terminator such as a UNIX output:


DECLARE @bulk_cmd varchar(1000);  
SET @bulk_cmd = 'BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail  
FROM ''<drive>:\<path>\<filename>''   
WITH (ROWTERMINATOR = '''+CHAR(10)+''')';  
EXEC(@bulk_cmd);  


Note
Due to how Microsoft Windows treats text files (\n automatically gets replaced with \r\n).
16 янв 18, 20:00    [21111996]     Ответить | Цитировать Сообщить модератору
 Re: Простейший BULK INSERT  [new]
mixer.sz
Member

Откуда:
Сообщений: 3
О, щяйтан msLex, спасибо огромнейшее
17 янв 18, 11:58    [21113312]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить