IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Script : copy d'un fichier CSV dans une base postgres - anomalie de l'utilisation de la commande pg_putcopyend


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut Script : copy d'un fichier CSV dans une base postgres - anomalie de l'utilisation de la commande pg_putcopyend
    Bonjour,

    J'ai créer un script Perl permettant d’effectuer un drop/create d'une table puis de l'alimenter
    grâce a un fichier CSV.

    J'ai l'erreur lors de la soumission de mon script :
    Nom : anomalie_soumission-script.png
Affichages : 185
Taille : 14,4 Ko

    Voici donc la partie du code incriminé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	open(my $infile, $FilepathExtraction) or die "Anomalie lors de l'ouverture du fichier  $sql \n";
    	print "Ouverture du fichier ordre SQL $FilepathExtraction : Ok\n";
    	while (my $line = <$infile>) 
    	{  
         $dbh->pg_putcopydata($line) or die "Anomalie de l'alimentation de la base $line\n";
    	}
    	$dbh->pg_putcopyend();
    	$dbh->commit or die "Anomalie lors du commit pour l'alimentation de la table $table\n";
    	close($infile);
    	print "Ordre d'alimentation de la $table : Ok\n";
    Quand on regarde sur internet, ce problème viendrait du fichier d'alimentation mais j'arrive à le copier via script bat.

    Il y a t-il une subtilité a prendre en compte dans l'encodage?

    Merci pour vos réponses.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 84
    Points : 197
    Points
    197
    Par défaut
    Je pense qu'il faut forcer ou indiquer le mode d'ouverture du fichier en utf8.

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Bonjour Jean-Mi;

    J'ai trouvé la solution en codant dans les ordres SQL en forçant l'encoding WIN1252.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	my $sql = "COPY $table (XXX,
    					     XXX)
    			   FROM STDIN with (format csv, delimiter ';', encoding 'WIN1252')";
    L'alimentation de la table est ok.

    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/03/2017, 04h56
  2. [PHP 5.2] Importation fichier CSV dans une base de données
    Par gtraxx dans le forum Langage
    Réponses: 10
    Dernier message: 21/02/2010, 16h16
  3. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 12h59
  4. chargement d'un fichier csv dans une base
    Par db2newbie dans le forum DB2
    Réponses: 2
    Dernier message: 21/01/2008, 23h29
  5. Réponses: 6
    Dernier message: 18/07/2006, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo