Import von CSV und Komma in string-Werte

Verwende ich postgres 8.4 und derzeit versucht, zu importieren einer trivialen CSV:

Hier ist eine Tabelle:

CREATE TABLE public.sample (
  a VARCHAR, 
  b VARCHAR
) WITHOUT OIDS;

und hier ist eine csv-Datei Beispiel:

"foo","bar, baz"

Die Abfrage

COPY sample FROM '/tmp/sample.csv' USING DELIMITERS ',';

erwartet, wirft

ERROR:  extra data after last expected column
CONTEXT:  COPY sample, line 1: ""foo","bar, baz""

Aber naja, CSV-parsing ist kein Hexenwerk und ich würde mich Wundern, wenn es nicht möglich ist, zu lösen, ohne Neuformatierung der Quell-csv.

Irgendwelche Ideen?

PS: die csv kommt von 3rd-party-ich kann nicht das format ändern.

PPS: ja, ich verstehen, ich konnte pre-Prozess (änderung der Trennzeichen manuell), bevor ich es importieren

Endgültige Lösung:

COPY sample FROM '/tmp/sample.csv' WITH DELIMITER ',' CSV;

Ursprünglich entnommen https://stackoverflow.com/a/9682174/251311 und Dokumentation Seite ist http://www.postgresql.org/docs/8.4/static/sql-copy.html

InformationsquelleAutor zerkms | 2012-04-03
Schreibe einen Kommentar