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

JDBC Java Discussion :

Incompréhensible : problème requête Oracle 9i


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut Incompréhensible : problème requête Oracle 9i
    Bonjour, je suis face à un problème que je ne parviens pas à comprendre. Vous allez voir c'est assez simple :
    Avec l'utilisation d'un JDBC Oracle (version 9, classes12.jar), la requête suivante retourne null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = stat.executeQuery("SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = '" + ref + "'");
    la requête retournée est correcte :

    SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = 'L900005074'
    Ceci retourne null également :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String query = String.format("SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = '%s'", ref);
    rs = stat.executeQuery(query);
    affichage de la requête :
    SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = 'L900005074'
    Par contre avec la valeur renseignée directement j'obtient le résultat souhaité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = stat.executeQuery("SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = 'L90005074'");
    A chaque fois que j'utilise des champs de type CHAR avec des variables de type String, le résultat est null. En faisant des requetés sur des champs de type NUMBER, le résultat est correct.
    J'ai l'impression que quelque chose cloche dans la combinaison de la quote (') et d'une variable java, pouvez vous m'aider svp ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    On dirait surtout que ta variable "ref" est incorrecte, car il y a un zéro de trop :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = 'L900005074'
    SELECT USERFLD2 FROM MMPRDMST WHERE PRODNO = 'L90005074'


    Sinon attention à l'origine de cette variable justement. Ce type de code peut être la cible d'injection SQL.
    S'il s'agit de valeur saisie par l'utilisateur, il est préférable de passer par des PreparedStatement...


    a++

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    La honte... je planche là-dessus depuis ce matin, et surtout je ne comprenais pas pourquoi cela fonctionnait sans problème en dev, je n'ai même pas été foutu de voir l'erreur dans ma base de prod.
    Merci
    Ce n'est pas de la saisie utilisateur, c'est un petit processus d'une plus grosse application que je développe, la partie utilisateur est interfacée par jpa2 sur une autre connexion

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

Discussions similaires

  1. Problèmes avec requêtes Oracle sous Cron Unix
    Par wahabbad dans le forum Oracle
    Réponses: 1
    Dernier message: 02/08/2011, 13h21
  2. Problème requête Oracle
    Par newmar dans le forum SQL
    Réponses: 1
    Dernier message: 28/05/2008, 07h45
  3. Problème requête SELECT ORACLE
    Par vizlebiz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/02/2008, 16h20
  4. [Oracle] Problème requête somme
    Par baptus dans le forum Langage SQL
    Réponses: 24
    Dernier message: 23/03/2006, 08h33
  5. Réponses: 6
    Dernier message: 20/09/2004, 15h26

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