PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/11/2012 12:32:47

Antonin
Membre

Problème de copy de fichier csv - RÉSOLU

Bonjour à tous!!!,

Voila plusieurs jours que je n'arrive pas à résoudre un problème de mon application.


Une petit contexte :


      J'ai deux fichiers CSV séparés par des ";" et sans en-entête. Ces deux fichiers vont remplir chacune une table de postgresSql :


La table Commande :                                        et la table Produit:

    id_commande  SERIAL                                  id_Produit  SERIAL           
    Collaborateur_Nom  varchar(50)                    id_Commande INTEGER NOT NULL => qui pointe vers une commande de la table Commande avec une contrainte de clé étrangère.
    Collaborateur_Prenom Varchar(50)                Produit_nom varchar(50)
    .....                                                              Quantite ....


J'utilise la commande COPY de postgres pour insérer ces deux fichiers (Le fichier de commande en premier bien sûr).


Voici mes deux requêtes :

COPY   t_commande( Collaborateur_Nom, 
             Collaborateur_Prenom, 
             ...) 
            FROM E'[em]nom_fichier[/em]' DELIMITER ';' NULL as '' CSV QUOTE as '|'

et

COPY   t_produit( id_Commande, 
             Produit_nom, 
             ...) 
            FROM E'[em]nom_fichier[/em]' DELIMITER ';' NULL as '' CSV QUOTE as '|'

La première requête s'effectue sans problème. Par contre la requête des produits se plante dans mon programme en VB.NET Framework 2.0 avec la ddl npgsql pour dialoguer avec ma base PostGres.


Si je lance la requête des produits dans PgAdmin, celle-ci s'effectue sans erreur!!!


Alors pourquoi au niveau de application la requête plante avec le message d'erreur suivant :
ERREUR: 22P04: données supplémentaires après la dernière colonne attendue.


Je reste à votre disposition si vous avez besoin de plus d'explication.
Merci à vous pour vos réponses.

Dernière modification par Antonin (16/11/2012 16:47:19)

Hors ligne

#2 16/11/2012 12:58:34

gleu
Administrateur

Re : Problème de copy de fichier csv - RÉSOLU

La requête ne doit pas être exactement identique. À priori, PostgreSQL voit des colonnes supplémentaires dans le fichier fourni via votre application en VB.NET.

Hors ligne

#3 16/11/2012 13:10:51

Antonin
Membre

Re : Problème de copy de fichier csv - RÉSOLU

Bonjour Guillaume,


      Pourquoi en prenant le même fichier et la même requête (récupéré en debug) que je lance dans PgAdmin. La requête fonctionne sans erreur?? Et avec mon application elle marche pas.


      Je sais pas si c'est à voir mais j'utilise les transactions dans mon application. Et pas dans pgAdmin.


Cordialement.

Dernière modification par Antonin (16/11/2012 13:11:04)

Hors ligne

#4 16/11/2012 13:59:49

gleu
Administrateur

Re : Problème de copy de fichier csv - RÉSOLU

L'erreur reportée n'a pas l'air de concerner les transactions. Êtes-vous vraiment sûr à 100% qu'il s'agisse la même requête ?

Hors ligne

#5 16/11/2012 16:45:45

Antonin
Membre

Re : Problème de copy de fichier csv - RÉSOLU

C'est bon je pense avoir trouvé l'erreur :


   Mon Setup installait la mauvaise version de la ma dll.


Merci à toi gleu car c'est en voulant récupérer la requête utilisé dans mon application dans un log que j'ai pu remarquer la mauvaise version de la dll. Et donc oui du coup ce n'était pas la même requête.


Cordialement.


PS : Comment mettre ce topic en Résolu?

C'est bon je me suis débrouillé.

Dernière modification par Antonin (16/11/2012 16:47:45)

Hors ligne

Pied de page des forums