Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 24/04/2020 11:51:35
- oles67
- Membre
PG9.6 : Copy Import CSV ERREUR: données manquantes pour la colonne
Bonjour,
j'ai un gros fichiers CSV que je dois importer régulièrement à chaque fois qu'il est modifié.
Ce fichier est généré par un logiciel que je ne maitrise pas. L’éditeur n'est pas pressé car c'est un défaut mineur (il le fera lors de la prochaine grosse mise à jour du logiciel)
Ce programme ajoute des colonnes aux fils des versions, mais les lignes existantes ne sont pas mise à jour sur le nombre de tabulation. Seules les nouvelles lignes sont completes jusqu'à l'ajout de nouvelles colonnes par le logiciel.
En attendant j'aimerai savoir comment contourner le problème.
Exemple fichier CSV (colonne texte et numérique) dans une table avec 4 colonnes datatype TEXT : ("|" est en faite une tabulation)
ColonneA|colonneB|ColonneC|ColonneD
A1|B1|C1
A2|B2
A3|B3|C3|C4
Avec cet exemple COPY n'est pas content en ligne 1 et 2.
Compliqué de prétraité le CSV en ajoutant les tabulations manquantes car risque de corruptions du format des valeurs numérique et des quotes s'il y en a.
Y a t-il une méthode pour contourner ou bien une alternative pgsql ?
Merci de votre aide.
Cordialement.
Dernière modification par oles67 (24/04/2020 11:58:16)
Hors ligne
#2 25/04/2020 06:06:22
- rjuju
- Administrateur
Re : PG9.6 : Copy Import CSV ERREUR: données manquantes pour la colonne
Il n'y a pas d'alternative côté postgres tout simplement car le fichier est question n'est pas un fichier CSV valide. Vous devriez pouvoir trouver un ETL capable d'ignorer les lignes invalides si c'est le compromis que vous cherche.
Julien.
https://rjuju.github.io/
Hors ligne
#3 28/04/2020 17:14:20
- oles67
- Membre
Re : PG9.6 : Copy Import CSV ERREUR: données manquantes pour la colonne
Il n'y a pas d'alternative côté postgres tout simplement car le fichier est question n'est pas un fichier CSV valide. Vous devriez pouvoir trouver un ETL capable d'ignorer les lignes invalides si c'est le compromis que vous cherche.
Bonjour,
finalement j'ai traité ça en amont avec powershell et copy ne pose plus de problème.
Merci
Hors ligne