PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PG COPY-Fehler:Ungültige Eingabesyntax für Ganzzahl

FEHLER:ungültige Eingabesyntax für Ganzzahl:""

"" ist keine gültige Ganzzahl. PostgreSQL akzeptiert ohne Anführungszeichen leere Felder standardmäßig als null in CSV, aber "" wäre wie schreiben:

SELECT ''::integer;

und scheitern aus demselben Grund.

Wenn Sie mit CSV arbeiten möchten, das Dinge wie leere Zeichenfolgen in Anführungszeichen für Null-Ganzzahlen enthält, müssen Sie es über einen Präprozessor an PostgreSQL übergeben, der es ein wenig aufräumen kann. Die CSV-Eingabe von PostgreSQL versteht all die seltsamen und wunderbaren möglichen Missbrauchsfälle von CSV nicht.

Zu den Optionen gehören:

  • Laden in eine Tabelle und Exportieren einer vernünftigen CSV-Datei;
  • Verwendung von Python csv Modul, Perl Text::CSV , usw., um es vorzuverarbeiten;
  • Mit Perl/Python/was auch immer die CSV-Datei laden und direkt in die DB einfügen
  • Mit einem ETL-Tool wie CloverETL, Talend Studio oder Pentaho Kettle