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

SGBD Perl Discussion :

DBD::Oracle Bugzilla et les accents


Sujet :

SGBD Perl

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut DBD::Oracle Bugzilla et les accents
    Bonjour,

    Je ne sais pas si je poste dans la bonne section...

    Voilà mon problème :
    Historiquement nous avions une instance bugzilla (4.4.4) tournant sur un serveur windows (IIS 7+ Active Perl 5.16.3 + Oracle instant client 12.1) connecté à une base Oracle (10.2.0.4).
    Pour diverses raisons, j'ai déplacé l'appli sur un serveur linux (Debian 7 + Oracle instant client 12.1).

    Le soucis se situe dans la restitution des accents.
    Si j'effectue une requête (un simple select SHORT_DESC from BUGS where BUG_ID='monbug') via SQLPlus, j'obtiens :
    Visualiser les fichiers TXT sans passer par une étape de conversion.
    Tant sur Windows que linux.
    Si j'affiche maintenant la page de ce bug via l'appli, j'obtiens correctement les accents via le serveur Win, mais ça via le serveur linux :
    Visualiser les fichiers TXT sans passer par une etape de conversion.

    Un simple test Perl donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    use DBI;
    use DBD::Oracle;
     
    my $dbh = DBI->connect("dbi:Oracle:host=$oracle_server;port=$oracle_port;sid=$oracle_sid", $oracle_user, $oracle_password)
      or die "Impossible de se connecter à la base Oracle : " . DBI->errstr;
     
    my $sth = $dbh->prepare("SELECT SHORT_DESC FROM $oracle_table_de_test where BUG_ID=5054")
      or die "Impossible de preparer la requette: " . $dbh->errstr;
     
    $sth->execute()
      or die "Impossible d'exécuter la requette: " . $sth->errstr;
     
    while ( my @data = $sth->fetchrow_array() ) 
    {
        my $shortdesc = $data[0];
        print "\t$shortdesc\n";
    }
     
    if ($sth->rows == 0) 
    {
        print "Table vide\n";
    }
     
    $sth->finish;
     
    $dbh->disconnect;
    J'obtiens :
    Visualiser les fichiers TXT sans passer par une �pe de conversion.

    Si quelqu'un a une idée ...

    Merci
    Vincent

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Points : 406
    Points
    406
    Par défaut
    Je pense que ton problème vient d'une différence d'encodage des caractères (le plus probable Unicode/UTF-8)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Oui je pense également mais je n'ai pas le moindre idée de comment le résoudre...

    Si toi, ou quelqu'un d'autre, a une idée, je suis preneur

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Essaie déjà d'ajouter:
    Ça peut (peut-être) suffire à résoudre le problème.

    Sinon, as-tu le problème avec des enregistrements créés sous Debia, ou seulement avec des enregistrements migrés depuis Windowsz?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Merci d'essayer de m'aider.

    Alors les données n'ont pas bougées, elles sont sur la même instance Oracle (Oracle 10gr2 sous AIX) ...

    J'ai tout de même progressé un peu :
    1) Le jeu de caractère pour la base est : WE8ISO8859P15 et pas AL32UTF8 ...
    2) si je rajoute dans la boucle la partie en gras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ( my @data = $sth->fetchrow_array() )
    {
        Encode::from_to($data[0], 'iso-8859-15', 'utf8');
        my $shortdesc = $data[0];
        print "$shortdesc\n";
    }
    J'obtiens bien :
    Visualiser les fichiers TXT sans passer par une étape de conversion.

    Je suis en train de regarder pour migrer la base dans 1 autre jeu de caractère, à moins qu'une solution plus simple existe

Discussions similaires

  1. oracle 10g XE n'accepte pas les accents
    Par gnaoui_9999 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/08/2007, 17h47
  2. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 14h56
  3. [FoxPro]Instruction pour enlever les accents ?
    Par Fab-FoxPro dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 19/08/2003, 15h46
  4. les accents et printf
    Par remi77 dans le forum C
    Réponses: 5
    Dernier message: 07/07/2003, 20h53
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

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