powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / BULK INSERT файла содержащего разделитель строки chr(10)
3 сообщений из 3, страница 1 из 1
BULK INSERT файла содержащего разделитель строки chr(10)
    #32020572
Sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запутался в трех соснах. Помогите плиз.
SQL 2000
Есть файлы строки в которых разделены ASCII символом #10 (кажется это \n). Так вот, если использовать команду типа
BULK INSERT T_ORIGINAL_BILLING_BULK_ONECOL
FROM 'F:\MYDATA©hr_10.txt'
WITH
(
ROWTERMINATOR = '\n'
)
не распознаются строки и все вставляется одной строкой. Решив что я перепутал \n и ® попробовал оба варианта, их комбинации - все напрасно, вставляется одной строкой.

Вернулся к документации, нашел в документации по bcp что она автоматически подставляет ® к \n в случае если ты указываешь ей только \n. Решил что это видимо применяется и для команды BULK INSERT, поэтому она не может распознать строки (т.е. несмотря на то что я указываю \n, она в конце концов видимо пытается использовать \n®).

Поэтому, чтобы жестко указать разделитель решил использовать форматный файл вида
8.0
1
1 SQLNCHAR 2 4000 "\n" 1 DATA Cyrillic_General_CI_AS

И команду
BULK INSERT T_ORIGINAL_BILLING_BULK_ONECOL
FROM 'F:\SCEDATA©hr_10.txt'
WITH
(
FORMATFILE = 'F:\MYDATA\format.fmt'
)
Выдает зараза:
Bulk Insert fails. Column is too long in the data file for row 1, column 1. Make sure the field terminator and row terminator are specified correctly.

Хотя этот файл тестовый, из двух строк разделенных ASCII #10. Строки естественно "firstline" и "secondline".

Подскажите кто знает - где грабли. Может еще что попробовать?

Спасибо.
...
Рейтинг: 0 / 0
BULK INSERT файла содержащего разделитель строки chr(10)
    #32020573
Sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, делаю репост и заменяю символы на строки, т.к. они как то криво отображаются
*******************
Запутался в трех соснах. Помогите плиз.
SQL 2000
Есть файлы строки в которых разделены ASCII символом #10 (кажется это \n). Так вот, если использовать команду типа
BULK INSERT T_ORIGINAL_BILLING_BULK_ONECOL
FROM 'F:\MYDATA©hr_10.txt'
WITH
(
ROWTERMINATOR = '<backslash n>'
)
не распознаются строки и все вставляется одной строкой. Решив что я перепутал <backslash n> и <backslash r> попробовал оба варианта, их комбинации - все напрасно, вставляется одной строкой.

Вернулся к документации, нашел в документации по bcp что она автоматически подставляет <backslash r> к <backslash n> в случае если ты указываешь ей только <backslash n>. Решил что это видимо применяется и для команды BULK INSERT, поэтому она не может распознать строки (т.е. несмотря на то что я указываю <backslash n>, она в конце концов видимо пытается использовать <backslash n backslash r&gt.

Поэтому, чтобы жестко указать разделитель решил использовать форматный файл вида
8.0
1
1 SQLNCHAR 2 4000 "<backslash n>" 1 DATA Cyrillic_General_CI_AS

И команду
BULK INSERT T_ORIGINAL_BILLING_BULK_ONECOL
FROM 'F:\SCEDATA©hr_10.txt'
WITH
(
FORMATFILE = 'F:\MYDATA\format.fmt'
)
Выдает зараза:
Bulk Insert fails. Column is too long in the data file for row 1, column 1. Make sure the field terminator and row terminator are specified correctly.

Хотя этот файл тестовый, из двух строк разделенных ASCII #10. Строки естественно "firstline" и "secondline".

Подскажите кто знает - где грабли. Может еще что попробовать?

Спасибо.
...
Рейтинг: 0 / 0
BULK INSERT файла содержащего разделитель строки chr(10)
    #32020580
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня при данном формат-файле
\n8.0
1
1 SQLCHAR 0 50 " <backslash n> " 1 f1 Estonian_CI_AS

и

BULK INSERT mytable
FROM 'с:\my.txt'
WITH
(
FORMATFILE = 'c:\my.fmt'
)

прекрасно работает
и

bcp "mydb..mytable" in c:\my.txt -f c:\my.fmt -S MYSERVER -T
тоже работает

В BOL - Administering SQL Server - Importing and Exporting Data - Using bcp and BULK INSERT - Using Format Files
есть маленькая строчка
"With ASCII data files, use SQLCHAR; for native format data files, use default data types"

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


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