PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore PG COPY:sintassi di input non valida per intero

ERRORE:sintassi di input non valida per il numero intero:""

"" non è un numero intero valido. PostgreSQL accetta non quotato campi vuoti come null per impostazione predefinita in CSV, ma "" sarebbe come scrivere:

SELECT ''::integer;

e fallire per lo stesso motivo.

Se vuoi gestire CSV che ha cose come stringhe vuote tra virgolette per interi nulli, dovrai inviarlo a PostgreSQL tramite un preprocessore che può ripulirlo un po'. L'input CSV di PostgreSQL non comprende tutti gli strani e meravigliosi possibili abusi del CSV.

Le opzioni includono:

  • Caricarlo in un foglio di lavoro ed esportare un CSV corretto;
  • Utilizzo di Python csv modulo, Perl Text::CSV , ecc per pre-elaborarlo;
  • Utilizzare Perl/Python/qualunque cosa per caricare il CSV e inserirlo direttamente nel DB
  • Utilizzare uno strumento ETL come CloverETL, Talend Studio o Pentaho Kettle