Я пытаюсь выполнить этот запрос (я также пробовал его без указания FIELDTERMINATOR и ROWTERMINATOR).Он использует файл данных, который я вручную создаю (не с помощью bcp out).
BULK INSERT FS.dbo.Termination_Call_Detail
FROM 'C:\Termination_Call_Detail__1317841711.dat'
WITH
(
FORMATFILE = 'C:\Termination_Call_Detail__update_TerminationCallDetailData.fmt',
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\r\n'
)
Я получаю сообщения об ошибках:
Номер сообщения сервера = 4864 серьезность = 16состояние = 1 строка = 1 сервер = USA109MSSQL1A
text = ошибка преобразования данных при массовой загрузке (несоответствие типов или недопустимый символ для указанной кодовой страницы) для строки 1, столбец 9 (RouterCallKey).
номер сообщения сервера =Уровень важности 4832 = состояние 16 = 1 строка = 1 сервер = USA109MSSQL1A
текст = Массовая загрузка: в файле данных обнаружен непредвиденный конец файла.
Номер сообщения сервера = 7399 уровень серьезности = 16 состояние = 1line = 1 server = USA109MSSQL1A
text = Поставщик OLE DB "BULK" для связанного сервера "(null)" сообщил об ошибке.
Поставщик не предоставил никакой информации об ошибке.
Номер сообщения сервера = 7330 серьезность = 16 состояние = 2 строки = 1 сервер = USA109MSSQL1A
text = Невозможно извлечь строку из поставщика OLE DB "BULK" для связанного сервера "(null)".
Я пытаюсь заставить его работать только с одной строкой.
Файл данных ASCII:
611658275664 1 5027 5001 5005 5010 2011-10-05 14:53:44 1317840824 240 2011-10-05 14:54:04 1317840844 150026 211 2 1 4480 21543 28 0 29 0 0 0 0 29 0 0 0 IPT_Call TAC_Rollover 424755/4 N 0 5030 5000 2865 805336626 2674794299 N 1 3 N 0 0
Шестнадцатеричный дамп файла данных: http://pastebin.com/grnwQrdT
Формат файла: http://pastebin.com/WwSQvCGg
Схема таблицы: http://pastebin.com/gFjp4xYy
Эта вставка использует 66 столбцов;таблица содержит 84 столбца.Если я создаю файл форматирования с bcp всей таблицы и файлом данных этой же строки, я могу без проблем запустить этот BULK INSERT QUERY.
Шестнадцатеричный дамп файла данных, созданного bcp в той же строкеданных (со всеми столбцами): http://pastebin.com/MpMk6iq4
Я тщательно искал пропущенные символы новой строки или разделители табуляции, но не могу их найти.На шестнадцатеричном дампе файла данных вы можете видеть, что все выглядит правильно.Я сравнил его с файлом данных, созданным bcp, и не смог найти каких-либо различий в форматировании.
Я также не могу представить, почему он жалуется на это конкретное поле (RouterCallKey) - над ним есть другие поля в файле формата, которыеодного типа (например, RouterCallKeyDay).
Спасибо!