Добрый день всем, у меня есть такой сценарий: я использую команду SQL Server «BulkInsert» для вставки данных в таблицу из позиционного (.txt) файла.Я использую, чтобы определить структуру файла, XML-файл, который определяет положение (и длину) полей и их имен.
Это 2 образца строки позиционного файла .txt:
AAA111111Surname 1 Name 1
BBB222222Surname 23 Name 99
Мой файл формата .xml определен следующим образом:
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharFixed" LENGTH="3" />
<FIELD ID="2" xsi:type="CharFixed" LENGTH="6" />
<FIELD ID="3" xsi:type="CharFixed" LENGTH="20" />
<FIELD ID="4" xsi:type="CharFixed" LENGTH="20" />
<FIELD ID="5" xsi:type="CharTerm" TERMINATOR="\r\n" />
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="AlfaCode" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="2" NAME="NumericCode" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="Surname" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Name" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
Мой код SQL Server:
DELETE from MY_TABLE
BULK INSERT MY_TABLE FROM 'C:\Directory\InputFile.txt'
WITH (
FORMATFILE = 'C:\Directory\FormatFile.xml'
)
Но когда я запускаю в SQL Server sp, яиметь следующую ошибку:
Msg 4866, Level 16, State 1, Line 3
The bulk load failed. The column is too long in the data file for row 1, column 58. Verify that the field terminator and row terminator are specified correctly.
Msg 7399, Level 16, State 1, Line 3
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 3
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
Это всегда работало идеально до 2 месяцев назад, затем в файл были введены неправильные данные и процедура завершилась неудачно.Теперь данные в InputFile.txt снова верны, но процедура не работает. Я проверял более одного раза InputFile.txt, FormatFile.xml и, конечно, также MY_TABLE, но все кажется идеальным.
Я в отчаянии, потому что все кажется нормальным, я сравнил также старые файлы .xml, добавив только некоторые поля.
Пожалуйста, ответьте КАК МОЖНО СКОРЕЕ и извините, если мой английский очень плохой.Не стесняйтесь сообщать мне другую информацию.
Спасибо всем