it-swarm.com.de

"zusätzliche Daten nach der letzten erwarteten Spalte" beim Versuch, eine CSV-Datei in postgresql zu importieren

Ich versuche, den Inhalt einer CSV-Datei in meine postgresql-Datenbank zu kopieren, und erhalte die Fehlermeldung "zusätzliche Daten nach der letzten erwarteten Spalte".

Der Inhalt meiner CSV ist

    agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
100,RATP (100),http://www.ratp.fr/,CET,,

und mein postgresql befehl ist

COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';

Hier ist mein Tisch

CREATE TABLE agency (
    agency_id character varying,
    agency_name character varying NOT NULL,
    agency_url character varying NOT NULL,
    agency_timezone character varying NOT NULL,
    agency_lang character varying,
    agency_phone character varying,
    agency_fare_url character varying
);

     Column      |       Type        | Modifiers 
-----------------+-------------------+-----------
 agency_id       | character varying | 
 agency_name     | character varying | not null
 agency_url      | character varying | not null
 agency_timezone | character varying | not null
 agency_lang     | character varying | 
 agency_phone    | character varying | 
 agency_fare_url | character varying | 
35

Jetzt hast du 7 Felder.

Sie müssen diese 6 Felder aus der CSV in 6 Felder in der Tabelle abbilden.

Sie können nicht nur 3 Felder aus csv zuordnen, wenn Sie es 6 haben, wie Sie es in tun:

\COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';

Alle Felder aus der csv-Datei müssen im Befehl copy from zugeordnet werden.

Und da Sie definiert csv , Trennzeichen ist Standard, Sie müssen es nicht setzen.

33
Mladen Uzelac

Ich bin mir nicht sicher, ob dies eine Antwort ist, aber ich habe dies nur mit einer Reihe von CSV-Dateien versucht und festgestellt, dass der Fehler dadurch behoben wurde, dass sie einfach in Excel geöffnet und ohne Änderungen erneut gespeichert wurden. Möglicherweise enthält die Quelldatei eine falsche Formatierung, die Excel automatisch bereinigen kann.

0
shacker