PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur PG COPY :syntaxe d'entrée non valide pour l'entier

ERREUR :syntaxe d'entrée invalide pour l'entier :""

"" n'est pas un entier valide. PostgreSQL accepte sans guillemets champs vides comme nuls par défaut dans CSV, mais "" serait comme écrire :

SELECT ''::integer;

et échouent pour la même raison.

Si vous souhaitez gérer un CSV contenant des éléments tels que des chaînes vides entre guillemets pour des entiers nuls, vous devrez le transmettre à PostgreSQL via un préprocesseur qui peut le rendre un peu plus net. L'entrée CSV de PostgreSQL ne comprend pas tous les abus possibles étranges et merveilleux de CSV.

Les options incluent :

  • Le charger dans une feuille de calcul et l'exporter au format CSV ;
  • Utiliser le Python csv module, Perl Text::CSV , etc. pour le pré-traiter ;
  • Utiliser Perl/Python/whatever pour charger le CSV et l'insérer directement dans la base de données
  • Utiliser un outil ETL comme CloverETL, Talend Studio ou Pentaho Kettle