Почему я получаю сообщение «Разбор XML:строка 2, символ 0, неверный синтаксис документа» при массовой вставке в MS SQL Server

StackOverflow https://stackoverflow.com/questions/2154635

  •  23-09-2019
  •  | 
  •  

Вопрос

Я выполняю ОБЪЕМНУЮ ВСТАВКУ в таблицу, используя файл формата FMT, но получаю следующую ошибку:

XML parsing: line 2, character 0, incorrect document syntax

Вот мой код

BULK INSERT [DM_Flux].[dbo].[Stage] FROM 'C:\temp\data.dat'
WITH (FORMATFILE = 'C:\temp\FormatBcp.fmt')

Вот файл формата (файл стандартного формата, а не XML):

10.0
5
1   SQLCHAR 0   2   ""  1   Id  ""
2   SQLCHAR 0   40  ""  2   Name    ""
3   SQLCHAR 0   50  ""  3   Street  ""
4   SQLCHAR 0   8   ""  4   StreetNo    ""
5   SQLCHAR 0   300 "\r\n"  7   BulkData    ""

Почему я получаю при этом ошибку XML?

Это было полезно?

Решение 3

Если файл формата закодирован как Unicode, массовая вставка автоматически сочтет его XML-файлом и воспримет его как таковой.Убедитесь, что файл закодирован как АНСИ и с тобой должно быть все в порядке.

Другие советы

И еще один момент на случай, если кто-нибудь еще столкнется с этим...

Если вы уверены, что файл имеет формат ANSI, но эта ошибка по-прежнему возникает, проверьте первую строку файла формата (номер версии).Номер версии должен совпадать с номером вашей версии SQL (или быть более старым номером версии).

Справочник MSDN:

Версия утилиты bcp (Bcp.exe), используемая для чтения файла форматирования, должна быть такой же или более поздней версией, которая использовалась для создания файла форматирования.Например, SQL Server 2008 bcp может читать файл формата версии 9.0, созданный SQL Server 2005 bcp, но SQL Server 2005 bcp не может читать файл формата версии 10.0, созданный SQL Server 2008 bcp.

Хороший способ убедиться, что сервер MS SQL правильно читает формат версии, — понизить номер версии в файле .FMT.Измените версию V10.0 на версию 9.0 или ниже.MS SQL 2008 может читать более низкую версию, но 2005 не может читать более высокую версию.Поэтому понижение номера версии может помочь решить проблему.

Номер версии утилиты bcp:

 9.0 = SQL Server 2005 
10.0 = SQL Server 2008
11.0 = SQL Server 2012
12.0 = SQL Server 2014

Для файла формата, отличного от XML, вы можете обратиться к странице Microsoft: http://msdn.microsoft.com/en-us/library/ms191479.aspx.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top