Einzelnen Beitrag anzeigen

CM123

Registriert seit: 28. Nov 2014
2 Beiträge
 
#1

Bulk Insert: Incorrect Syntax Near

  Alt 28. Nov 2014, 17:25
Datenbank: MS SQL • Version: 2012 • Zugriff über: ADO
Hallo,

ich habe ein kleines Problem mit dem Bulk Insert.


Ich befülle eine Datenbank mit verschiedenen Tabellenarten (in diesem Fall die 400er), die von unterschiedlichen Herstellen kommen können.
Bei den 400er Tabellen bin ich auf Bulk Insert umgestiegen, da sie hier bis zu 1,4GB groß sein können.

Die anderen Tabellen habe mit als Transaction mit Insert hochgeladen und Sonderzeichen direkt im Programm abgefangen und herausgefiltert.
Jetzt weiß ich aber nicht, wie ich mit Bulk Insert die Sonderzeichen abfangen kann.

Fehlermeldung:
Incorrect syntax near '-'

Die Daten an der Stelle:
1A3 002 850-001 0002400 00088 0000003770000100023326 00

Klar woher es kommt, aber wie geht es wieder weg ^^


Der Aufruf erfolgt wie folgt:

ADOQuery1.SQL.Add('BULK INSERT [dbo].[400.'+Hersteller+'] FROM '''+Verzeichnis+'400.'+Hersteller+''' WITH (FORMATFILE='''+Verzeichnis+'400.xml'', BATCHSIZE='+Zeilenzahl+')');

Als Formatfile habe ich folgendes hinterlegt:
Code:
<?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="22"/>
    <FIELD ID="2" xsi:type="CharFixed" LENGTH="4"/>
    <FIELD ID="3" xsi:type="CharFixed" LENGTH="3"/>
    <FIELD ID="4" xsi:type="CharFixed" LENGTH="5"/>
    <FIELD ID="5" xsi:type="CharFixed" LENGTH="5"/>
    <FIELD ID="6" xsi:type="CharFixed" LENGTH="3"/>
    <FIELD ID="7" xsi:type="CharFixed" LENGTH="9"/>
    <FIELD ID="8" xsi:type="CharFixed" LENGTH="5"/>
    <FIELD ID="9" xsi:type="CharFixed" LENGTH="4"/>
    <FIELD ID="10" xsi:type="CharFixed" LENGTH="20"/>
    <FIELD ID="11" xsi:type="CharFixed" LENGTH="1"/>
    <FIELD ID="12" xsi:type="CharTerm" TERMINATOR="\r\n"/>
  </RECORD>
  <ROW>
    <COLUMN SOURCE="1" NAME="ArtNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="2" NAME="DLNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="3" NAME="SA" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="4" NAME="Reserviert" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="5" NAME="GenArtNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="6" NAME="LKZ" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="7" NAME="LfdNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="8" NAME="SortNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="9" NAME="KritNr" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="10" NAME="KritWert" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="11" NAME="Exclude" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="12" NAME="AnzSofort" xsi:type="SQLNVARCHAR"/>
  </ROW>
</BCPFORMAT>
Für Hilfe wäre ich sehr dankbar

Geändert von CM123 (28. Nov 2014 um 18:01 Uhr)
  Mit Zitat antworten Zitat