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 :

Problème de requête sous Oracle


Sujet :

SGBD Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 20
    Points : 19
    Points
    19
    Par défaut Problème de requête sous Oracle
    Bonjour à tous,

    Petit problème en fin d'après midi de boulot... Je bosse avec Oracle 9i et perl 5.10 sous Windows XP.

    Je récupère sans sous soucis le champ 'machine' de la vue v$session et je souhaite ensuite l'enregistrer dans une table de ma base de données. Le problème c'est qu'il me marque cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DBD::Oracle::db prepare failed: ORA-01756: une cha¯ne entre apostrophes ne se termine pas correctement (DBD ERROR: OCIStmtPrepare) [for Statement "SELECT COUNT(*) FROM sas.session_machine WHERE nom_machine = 'ADMIN\NTW2002 at getData.pl lin
    e 80.
    Impossible de crÚer le statement: ORA-01756: une cha¯ne entre apostrophes ne se termine pas correctement (DBD ERROR: OCIStmtPrepare) at getData.pl line 80.
    La ligne 80 en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $sth_machine = $dbh->prepare("SELECT COUNT(*) FROM session_machine WHERE nom_machine = \'$machine\'") or die "Impossible de créer le statement: " . $dbh->errstr;
    $machine peut contenir des noms de machine simple (style 'PC1') et dans ce cas ça marche ou bien des noms du style 'ADMIN/PC2' et dans ce cas j'ai une erreur.
    J'ai remarqué en faisant des print que lorsque ça plante $machine contient un caractère suplémentaire à la fin mais il est invisble...

    Le problème ne vient pas de la connection car j'effectue d'autre requête.

    Si quelqu'un a une idée, je suis preneur.

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Après une bonne nuit, j'ai trouvé la solution. Il suffit de supprimer le dernier caractère lorsque la chaine contient un "\".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($machine =~ /\\/) {
            $machine = substr($machine, 0, -1);
    }

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

Discussions similaires

  1. problème d'exécution de requêtes sous oracle 9i
    Par loukili81 dans le forum Oracle
    Réponses: 3
    Dernier message: 12/07/2007, 12h24
  2. Problème avec NVL sous ORACLE
    Par tchoimars dans le forum SQL
    Réponses: 4
    Dernier message: 21/05/2007, 17h35
  3. Problème de requêtes sous Access
    Par guestCam dans le forum Access
    Réponses: 2
    Dernier message: 02/03/2007, 16h56
  4. [SNMP] Problème de requêtes sous Windows
    Par weib dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/11/2005, 20h00
  5. Problème concaténation requête avec ORACLE
    Par kobe dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/08/2005, 12h57

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