Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / BULK INSERT файла содержащего разделитель строки chr(10) / 3 сообщений из 3, страница 1 из 1
11.01.2002, 14:15
    #32020572
Sergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BULK INSERT файла содержащего разделитель строки chr(10)
Запутался в трех соснах. Помогите плиз.
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
11.01.2002, 14:20
    #32020573
Sergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BULK INSERT файла содержащего разделитель строки chr(10)
Сорри, делаю репост и заменяю символы на строки, т.к. они как то криво отображаются
*******************
Запутался в трех соснах. Помогите плиз.
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
11.01.2002, 15:18
    #32020580
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BULK INSERT файла содержащего разделитель строки chr(10)
У меня при данном формат-файле
\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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / BULK INSERT файла содержащего разделитель строки chr(10) / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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