2013-09-26 5 views
9

Ich habe CSV-Datei (y.csv) im Folowing Format:Kopieren NULL-Werte in CSV-Datei zu Postgres

's', '1999-10-10', '1999-12-12' 
'b', '99-10-10 BC', '1-10-10 BC' 
'c', 'NULL', 'NULL' 

Ich habe ein paar NULL-Werte (für heute) in ihm, die ich angedeutet habe durch die Zeichenfolge 'NULL'.

Ich versuche, die CSV-Datei in Postgres zu kopieren. Für Dabei habe ich eine Tabelle erstellt:

create table r (id character varying(255), timebegin date, timeend date); 

Jetzt versuche ich, die über CSV-Datei in Postgres kopieren Sie den

copy r from '/home/y.csv' delimiter ',' csv; 
ERROR: invalid input syntax for type date: " 'NULL'" 
CONTEXT: COPY r, line 1, column timebegin: " 'NULL'" 

Befehl Auf Dabei einen Fehler mit NULL Ich erhalte. Kann mir bitte jemand helfen, den Fehler zu finden und zu korrigieren.

Antwort

21

Haben Sie es versucht?

copy r from '/home/y.csv' delimiter ',' csv WITH NULL AS 'null'; 
+6

Ich versuche, aber ich erhalte diesen Fehler: 'FEHLER: Syntaxfehler bei oder in der Nähe von" MIT NULL "'; – monteirobrena

+5

'copy r from '/home/y.csv' mit Begrenzer als ',' NULL AS 'null' csv;' Ich weiß nicht, ob die Syntax in der späteren Version von pgsql geändert wurde, aber das hat bei mir funktioniert. –

+3

@monteirobrena, lassen Sie das 'MIT'. Es wird ohne es funktionieren. –

1

Der Fehler liegt daran, dass Sie NULL als Zeichenfolge einfügen. Entfernen Sie die Anführungszeichen um NULL und es sollte funktionieren.

+0

Dies ist keine Lösung. Was wäre, wenn dies ein automatisierter Prozess wäre? – Kermit

+1

@FreshPrinceOfSO: Ich weiß, dass dies möglicherweise keine ideale Lösung ist, aber wie es in der Frage als "Ich habe ein paar NULL-Werte (für Datum) in dem ich durch die Zeichenfolge 'NULL' angegeben habe. Es ist klar dass der Fehler darin bestand, eine Zeichenfolge in die Datumsspalte einzufügen. – heretolearn