Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2008, 06h55   #1
Membre du Club
 
Inscription : mai 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 149
Points : 53
Points : 53
Par défaut Erreur Copy "extra data after last expected column"

Lorsque j'importe mes fichiers csv, j'ai parfois l'erreur :

"extra data after last expected column"

Il se trouve que ces données proviennent d'une application qui semble avoir quelques bugs, notamment celui de rajouter un caractère inutile dans le dernier champ de mon csv sur une ligne au hasard. Or cette donnée ne me sert à rien et sachant que je ne traite pas mon fichier avant l'import, je souhaiterai pouvoir désactiver ce warning, et importer les fichiers même si les colonnes de la fin sont remplies.
Cela est il possible ?
bilou972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 09h28   #2
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Si c'est sur une ligne au hasard (et non sur toutes les lignes) c'est difficile :
- soit tu fait un traitement (awk ou autre) sur ton fichier pour supprimer le caractère inutile
- soit tu peux regarder du côté de pgloader qui permet apparemment de faire un COPY amélioré en rejetant les lignes en erreur pendant le chargement
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 17h25   #3
Membre du Club
 
Inscription : mai 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 149
Points : 53
Points : 53
Merci pour les pistes.
Mon serveur est sous windows, Pgloader fonctionne t'il sur cette plateforme ? Une idée pour l'installation? Je n'ai vraiment rien trouvé.
bilou972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 07h34   #4
Membre du Club
 
Inscription : mai 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 149
Points : 53
Points : 53
C'est pire que je pensais, pour certaines colonnes j'ai également

data not found for column ...

Il faut vraiment que je trouve un truc.
bilou972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 09h02   #5
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Pour pgloader je n'ai pas plus d'infos
Sinon la meilleure solution reste quand-même d'avoir un fichier correct à charger, ça évite de devoir traiter les lignes comportant trop de champs ou pas assez ...
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 14h22   #6
Membre du Club
 
Inscription : mai 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 149
Points : 53
Points : 53
J'aimerai bien mais c'est impossible. Les données sortent d'un applicatif géré au niveau national et je ne peux pas y toucher.

Et puis même si le fichier est correct, on est jamais à l'abri d'une erreur.
Je vais regarder du coté de awk. Dommage que la documentation sur pgloader (surtout installation) soit si difficile à trouver.
bilou972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 09h25   #7
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Effectivement dans ce cas il faudrait faire un awk pour supprimer de ton fichier les lignes n'ayant pas le bon nombre de champs ...
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 14h16   #8
Membre du Club
 
Inscription : mai 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 149
Points : 53
Points : 53
Ok je fais ça et je posterai le code ici.
bilou972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2009, 10h51   #9
Membre actif
 
Inscription : février 2005
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 167
Points : 184
Points : 184
Citation:
Envoyé par bilou972 Voir le message
Lorsque j'importe mes fichiers csv, j'ai parfois l'erreur :

"extra data after last expected column"
J'importe des données en utilisant TAB comme délimiteur... et certaines données contenaient des tabs. J'ai simplement remplacé ça par "\\t" et ça passe.

Il faut sans doute backslasher tes virgules ou point-virgules...

-N
nematoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h37.


 
 
 
 
Partenaires

Hébergement Web