Ich möchte eine CSV-Datei in Version 9.2 importieren, aber die CSV-Datei enthält doppelte Anführungszeichen in der letzten Spaltenposition, um einen NULL-Wert darzustellen :kann CSV nicht in PostgreSQL-Tabelle kopieren: Zeitstempelspalte akzeptiert keine leere Zeichenfolge
"2","1001","9","2","0","0","130","","2012-10-22 09:33:07.073000000",""
, die auf eine Säule des Typs Zeitstempel zugeordnet ist. postgreSQL mag das "" nicht. Ich habe versucht, die NULL-Option zu setzen, aber vielleicht mache ich es nicht richtig? Ich habe versucht NULL as '""
und NULL ''
und NULL as ''
und NULL ""
aber ohne Erfolg; hier ist mein Befehl:
COPY SCH.DEPTS
FROM 'H:/backups/DEPTS.csv'
WITH (
FORMAT CSV,
DELIMITER ',' ,
NULL '',
HEADER TRUE,
QUOTE '"'
)
aber es funktioniert nicht mit einem Fehler:
ERROR: invalid input syntax for type timestamp: ""
CONTEXT: COPY depts, line 2, column expirydate: ""
P. S. Gibt es eine Möglichkeit, die Zeichenfolgendarstellung von Booleans zu dem Befehl COPY anzugeben? Das Dienstprogramm, das die CSVs erzeugte (von denen es viele gibt), verwendete "falsch" und "wahr".
Dieses Exportformat von MSFT unterscheidet sich von jeder anderen CSV-Datei dadurch, dass es alle Werte angibt, unabhängig davon, ob sie numerisch oder Zeichenfolgen sind. Fast so, als würden sie den Export absichtlich weniger nützlich machen ;-) Es sendet "wahr" und nicht "wahr". Zeit, die Exporte zu bereinigen. Danke für die Vorschläge von Kettle und Talend. – Tim