Perché ottengo “Analisi XML: la linea 2, carattere 0, la sintassi del documento non corretta” Inserimento quando Bulk in MS SQL Server

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

  •  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?

È stato utile?

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).

MSDN di riferimento :

  

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top