Hallo,
Ich muss eine CSV-Datei in eine Tabelle einlesen. Ich weiß aber den Aufbau der CSV-Datei nicht (Sie kann mal 10 Spalten und ein andermal 20 Spalten haben, wird aber nie mehr als 50 Spalten haben und pro Spalte kann die Zeichensatzlänge mal 10 oder 60 Zeichen sein).
Die dazu gehörige Tabelle hat 51 Spalten, wobei die 1. Spalte als Integer definiert ist und beim Import nicht beschrieben werden darf. Alle anderen 50 Spalten sind als char(50) definiert.
Ich habe das ganze schon mit
versucht, aber hierbei wird auch die 1. Spalte der Tabelle beschrieben und bekomme somit eine Fehlermeldung weil ich einen Text in eine Integer Variable schreiben will. Desweiteren wird mein Zeilenende mit '\n' oder '\r\n' nicht erkannt. Auch wenn ich in die CSV Datei ein '$' an das Ende jeder Zeile schreibe findet SQL das Zeilenende nicht.
Anschließend habe ich es mit
versucht. Hierbei bekomme ich die Fehlermeldung
"Meldung 4863, Ebene 16, Status 1, Zeile 1
Datenkonvertierungsfehler (Abschneiden) beim Massenladen für 1-Zeile, 1-Spalte (FELD_1)."
Keine Ahnung was ich noch machen soll. Vielleicht habt ihr noch eine Möglichkeit eine CSV-Datei in eine SQL-Tabelle, wenn der Aufbau der CSV-Datei nicht bekannt ist.
Gruß Nobody
Ich muss eine CSV-Datei in eine Tabelle einlesen. Ich weiß aber den Aufbau der CSV-Datei nicht (Sie kann mal 10 Spalten und ein andermal 20 Spalten haben, wird aber nie mehr als 50 Spalten haben und pro Spalte kann die Zeichensatzlänge mal 10 oder 60 Zeichen sein).
Die dazu gehörige Tabelle hat 51 Spalten, wobei die 1. Spalte als Integer definiert ist und beim Import nicht beschrieben werden darf. Alle anderen 50 Spalten sind als char(50) definiert.
Ich habe das ganze schon mit
Code:
BULK INSERT
gehasdat
from 'c:\Artikel.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
Anschließend habe ich es mit
Code:
insert into gehasdat
(FELD_1,FELD_2,FELD_3-FELD_50)
select
FELD_1,FELD_2,FELD_3-FELD_50
from OPENROWSET(BULK N'c:\Artikel.csv'
,FORMATFILE = N'C:\Artikel.dat'
,CODEPAGE = 'RAW') AS T1
"Meldung 4863, Ebene 16, Status 1, Zeile 1
Datenkonvertierungsfehler (Abschneiden) beim Massenladen für 1-Zeile, 1-Spalte (FELD_1)."
Keine Ahnung was ich noch machen soll. Vielleicht habt ihr noch eine Möglichkeit eine CSV-Datei in eine SQL-Tabelle, wenn der Aufbau der CSV-Datei nicht bekannt ist.
Gruß Nobody