Frage

Ich versuche, eine .csv -Datei in eine PostgreSQL -Datenbank zu importieren. Ich benutze Pgadmin III dafür auf einer Win7 -Maschine.

Meine Abfrage sieht so aus:

\COPY pop_grid(GRID_ID, POP_TOT, YEAR, METHD_CL, CNTR_CODE, DATA_SRC) from 'C:\...\popgrid.csv' DELIMITERS ',' CSV;

Die Daten im .csv sehen so aus:

1kmN5142E2862   2   2006    D   IS  AIT
1kmN5141E2862   13  2006    D   IS  AIT

Mein Tisch:

CREATE TABLE pop_grid 
(
    GRID_ID      text            PRIMARY KEY,
    POP_TOT      int         NOT NULL,
    YEAR         date        NOT NULL,
    METHD_CL     varchar(2)      NOT NULL,
    CNTR_CODE    varchar(32)     NOT NULL,
    DATA_SRC     varchar(4)      NOT NULL
);

Warum bekomme ich diesen Fehler?

ERROR: Missing data for column "pop_tot"
CONTEXT: COPY pop_grid, Row 1: "1kmN5142E2862;2;2006;D;IS;AIT"

Es fehlt nichts?

War es hilfreich?

Lösung

Sie sagen das COPY Befehl, nach Kommas als Grenzwerte zu suchen (DELIMITERS ','), aber es gibt keine Kommas in Ihrem CSV. Verwenden Sie stattdessen das Format "Text" (es ist die Standardeinstellung, sodass Sie es nicht angeben müssen) und geben Sie keinen Trennzeichen an:

Die Standardeinstellung ist ein Registerkartenzeichen im Textformat.

(Quelle)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top