Ich lade CSV-Dateien in PostgreSQL-Tabellen mithilfe der Massenlade-Methode COPY
. Es gibt einige Felder, die einen schlechten Charakter haben (wie "|", "" ","; "usw.). So bekomme ich beim Laden immer einen anderen Fehler. Ich habe versucht, mit Tabulator-Trennzeichen, Komma-Trennzeichen und andere Optionen auch, aber kein Glück.CSV-Daten beim Laden in PostgreSQL filtern oder bereinigen
gibt es eine Möglichkeit, ich CSV-Daten, bevor sie zu PostgreSQL mit COPY
Befehl Laden oder gibt es eine COPY
Befehlssyntax reinigen kann, die schlechten Zeichen, um etwas Standard ersetzen kann?
Dies sind die einige der Syntax ich versucht habe.
COPY tblsf FROM '/filelocation/test.csv' WITH CSV HEADER DELIMITER ',' NULL '?';
COPY tblsf FROM '/filelocation/test.csv' WITH CSV HEADER DELIMITER '|' NULL '?';
COPY tblsf FROM '/filelocation/test.csv' WITH CSV HEADER DELIMITER E'\t' NULL '?';
COPY tblsf FROM '/filelocation/test.csv' WITH CSV HEADER DELIMITER '<>' NULL '?';
Vielen Dank im Voraus
Wenn Ihre Datei mal geformt ist, haben Sie grundsätzlich zwei Möglichkeiten: (a) Bereiten Sie es vor, bevor Sie versuchen, nach PostgreSQL zu "kopieren"; (b) "KOPIEREN" Sie die Datensätze in eine einspaltige Tabelle und "säubern" Sie die Daten in PostgreSQL. – Nicarus
@Nicarus Es gibt noch zwei weitere Möglichkeiten: (c) benutze 'copy ... from program' von' copy' (seit v 9.3); (d) den Anbieter der Datei bitten, sein Format entsprechend dem CSV-Standard festzulegen. – Abelisto
@Abelisto - Es wird entweder innerhalb von PostgreSQL oder außerhalb davon "gesäubert". :-) – Nicarus