Perché ottengo “Analisi XML: la linea 2, carattere 0, la sintassi del documento non corretta” Inserimento quando Bulk in MS SQL Server
-
23-09-2019 - |
Domanda
Sto facendo un BULK INSERT in una tabella utilizzando un file di formato FMT, ma ottengo il seguente errore:
XML parsing: line 2, character 0, incorrect document syntax
Ecco il mio codice
BULK INSERT [DM_Flux].[dbo].[Stage] FROM 'C:\temp\data.dat'
WITH (FORMATFILE = 'C:\temp\FormatBcp.fmt')
Ecco il FORMATFILE (file di formato standard, non 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 ""
Perché ricevo un errore XML con questo?
Soluzione 3
Se il file di formato è codificato come Unicode l'inserimento di massa penserà automaticamente si tratta di un file XML e trattarlo come tale. Assicurarsi che il file è codificato come ANSI e si dovrebbe andare bene.
Altri suggerimenti
Anche un altro punto nel caso in cui nessun altro si imbatte in questo ...
Se sei sicuro che il file è ANSI, ma ancora ricevendo verificare questo errore la prima riga del file di formato (il numero di versione). Il numero di versione deve corrispondere il numero di versione di SQL (o essere un numero di versione precedente).
La versione del programma di utilità bcp (Bcp.exe) utilizzato per leggere un file di formato deve essere la stessa, o una versione successiva che è stato utilizzato per creare il file di formato. Ad esempio, SQL Server 2008 BCP può leggere un file in formato versione 9.0, che è generato da SQL Server 2005 BCP, ma SQL Server 2005 BCP non può leggere un file di formato versione 10.0, che è generato da SQL Server 2008 BCP.
Un buon modo per garantire che il server MS SQL non sta riuscendo a leggere il formato di versione, downgrade il numero di versione nel file .FMT. Modificare 10.0 a 9.0 o inferiore. MS SQL 2008 può leggere una versione inferiore ma il 2005 non è in grado di leggere una versione superiore. Così il downgrade del numer versione potrebbe aiutare a risolvere il problema.
Numero di versione dell'utilità bcp:
9.0 = SQL Server 2005
10.0 = SQL Server 2008
11.0 = SQL Server 2012
12.0 = SQL Server 2014
Per i file di formato XML non è possibile fare riferimento alla pagina di Microsoft: http: //msdn.microsoft.com/en-us/library/ms191479.aspx .