Bulk Insert mit Formatfile
Hallo zusammen!
Ich versuche über BULK INSERT eine CSV-Datei mit einer Formatdatei einzulesen. Dabei tritt folgender Fehler auf:
Meldung 4823, Ebene 16, Status 1, Zeile 5
Massenladen ist nicht möglich. Ungültige Spaltennummer in der Formatdatei 'C:\Datenbanken\format.Fmt'.
Dies ist der Insert-Befehl:
BULK INSERT dbo.Konto_TMP
FROM 'c:\Datenbanken\Konto.csv'
WITH(FORMATFILE = 'C:\Datenbanken\format.Fmt')
Dies die Tabelle:
CREATE TABLE [dbo].[Konto](
[Buchung] [datetime] NULL,
[Valuta] [datetime] NULL,
[Auftraggeber Empfänger] [text] NULL,
[Buchungstext] [varchar](50) NULL,
[Verwendungszweck] [text] NULL,
[Betrag] [money] NULL,
[Währung] [varchar](50) NULL
Und zu guter letzt die Formatdatei:
10.0
7
1 SQLDATETIME 0 25 ";" 1 Buchung ""
2 SQLDATETIME 0 25 ";" 2 Valuta ""
3 SQLCHAR 0 150 ";" 3 [Auftraggeber Empfänger] ""
4 SQLCHAR 0 50 ";" 4 Buchungstext ""
5 SQLTEXT 0 150 ";" 5 Verwendungszweck ""
6 SQLMONEY 0 25 ";" 6 Betrag ""
7 SQLCHAR 0 50 ";\n" 7 Währung ""
Ich habe MS SQL 2008 Express auf meinem Rechner laufen.
Ich versuche über BULK INSERT eine CSV-Datei mit einer Formatdatei einzulesen. Dabei tritt folgender Fehler auf:
Meldung 4823, Ebene 16, Status 1, Zeile 5
Massenladen ist nicht möglich. Ungültige Spaltennummer in der Formatdatei 'C:\Datenbanken\format.Fmt'.
Dies ist der Insert-Befehl:
BULK INSERT dbo.Konto_TMP
FROM 'c:\Datenbanken\Konto.csv'
WITH(FORMATFILE = 'C:\Datenbanken\format.Fmt')
Dies die Tabelle:
CREATE TABLE [dbo].[Konto](
[Buchung] [datetime] NULL,
[Valuta] [datetime] NULL,
[Auftraggeber Empfänger] [text] NULL,
[Buchungstext] [varchar](50) NULL,
[Verwendungszweck] [text] NULL,
[Betrag] [money] NULL,
[Währung] [varchar](50) NULL
Und zu guter letzt die Formatdatei:
10.0
7
1 SQLDATETIME 0 25 ";" 1 Buchung ""
2 SQLDATETIME 0 25 ";" 2 Valuta ""
3 SQLCHAR 0 150 ";" 3 [Auftraggeber Empfänger] ""
4 SQLCHAR 0 50 ";" 4 Buchungstext ""
5 SQLTEXT 0 150 ";" 5 Verwendungszweck ""
6 SQLMONEY 0 25 ";" 6 Betrag ""
7 SQLCHAR 0 50 ";\n" 7 Währung ""
Ich habe MS SQL 2008 Express auf meinem Rechner laufen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140658
Url: https://administrator.de/contentid/140658
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
Moin stefan1183,
bitte poste noch mal den Inhalt der (problemträchtigen) C:\Datenbanken\format.Fmt in Code-Tags.
Andernfalls ist es etwas schwierig zu erkennen, ob der inhalt passt.
Mein Verdacht ist allerdings, dass hier eher etwas anderes richtig spiegelverkehrt abgelaufen ist
Grüße
Biber
bitte poste noch mal den Inhalt der (problemträchtigen) C:\Datenbanken\format.Fmt in Code-Tags.
Andernfalls ist es etwas schwierig zu erkennen, ob der inhalt passt.
Mein Verdacht ist allerdings, dass hier eher etwas anderes richtig spiegelverkehrt abgelaufen ist
- in der DB-Tabelle sind ALLE (ich wiederhole ALLE) Datenfelder absolut beliebig befüll- oder ignorierbar... laso einfach NULLable (das hab ich ja noch nie gesehen....)
- dagegen DARF in der CSV kein einziger Spaltenwert jemals ein NULL-Wert sein (der zweite Parameter "Längenpräfix" ist immer 0-->dann wird nie ein NULL-Wert kommen). . Das hab ich so auch selten gesehen.
Grüße
Biber
Moin stefan1183,
wir freuen uns natürlich mit dir, aber dennoch die neugierige Frage:
Wie hast du denn jetzt die "richtige" Interpretation der Währungswert mit Tausenderpunkten erreicht?
Da wälzte ich nämlich auch noch unausgereifte Lösungsansätze mit mir herum, die sich allerdings noch scheuten gepostet zu werden...
Grüße
Biber
wir freuen uns natürlich mit dir, aber dennoch die neugierige Frage:
Wie hast du denn jetzt die "richtige" Interpretation der Währungswert mit Tausenderpunkten erreicht?
Da wälzte ich nämlich auch noch unausgereifte Lösungsansätze mit mir herum, die sich allerdings noch scheuten gepostet zu werden...
Grüße
Biber