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, PerlText::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