2017-04-14 6 views
0

Ich versuche, eine CSV-Datei zu laden, wo Werte, die NULL sein sollten, einfach leer sind. Betrachten wir zum Beispiel das folgende Schema:Lade CSV mit leeren Werten in MonetDB

CREATE TABLE test (
    float a, 
    float b, 
    float c 
); 

Ich versuche, eine Datei zu laden, die wie folgt aussieht (einige Zeilen keine NULL-Werte haben können, andere können mehrere haben).

1.0,1.2,1.3 
1.4,,1.5 
1.6,,, 
1.9,2.0,1.2 

I würde die leeren Felder mögen (z.B. 2. Feld in der zweiten Reihe) in der Datenbank NULL sein.

ich den folgenden Befehl bin mit dem CSV-Datei zu laden:

COPY INTO table from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

und ich die folgende Fehlermeldung erhalten:

Failed to import table line 2 field b 'double' expected in '' 

Sollte ich etwas anderes zu dem Ladebefehl sein vorbei (andere als NULL AS '')?

Antwort

0

Nein, Sie scheinen das richtig zu machen. Ich habe versucht, deinen Test zu wiederholen, und es funktioniert für mich. Ihr Fehler scheint nur dann aufzutreten, wenn Sie den NULL-AS-Teil Ihrer Antwort weglassen.

Es gibt mehrere kleinere Fehler in dem Code, den Sie zur Verfügung gestellt, wäre der richtige Code sein:

CREATE TABLE test (
    a float, 
    b float, 
    c float 
); 

COPY INTO test from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

Und in der Datei sollten Sie die extra '' Charakter entfernen:

1.0,1.2,1.3 
1.4,,1.5 
1.6,, 
1.9,2.0,1.2 

Wenn Dies schlägt fehl, versuchen Sie, Ihre Version von MonetDB zu aktualisieren.

Verwandte Themen