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 :

getString ne fonctionne pas sur un resultat retourné par SUBSTR


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut getString ne fonctionne pas sur un resultat retourné par SUBSTR
    Bonjour,

    J'ai une requete qui fait une modification sur ma colonne de type String. Cette modification est l'extraction d'une sous chaine avec SUBSTR.
    Le resultat de cette requete, je n'arrive pas à y acceder avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			pst = connect.prepareStatement(GET_CHEMIN);
    			rset = pst.executeQuery();
    		while (rset.next()) {
    			String chemin = rset.getString("IMG_CHEMIN");
    			system.out.println("Le chemin récuperé de la base est : " + chemin);
    			chemins.add(chemin);
    		}
    voici la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT nl.img_id, SUBSTR(ni.img_chemin, 1, INSTR(ni.img_chemin, '\', -1)) IMG_CHEMIN from images nl
    Pourtant le type renvoyé par SUBSTR est bien STRING.

    Merci de votre aide.

    Edit :
    La base est oracle.
    Driver version 10 (testé avec la version 9 pareil).
    Java 6

  2. #2
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    IL parait que le probleme vient de INSTR car j'ai remplacé cette derniere par 20 et ça marche.

    Voyez vous d'ou ça vient ?

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    t'as un message d'erreur?

  4. #4
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    Pas de message d'erreur mais que des valeurs null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT nl.img_id, SUBSTR(ni.img_chemin, 1, INSTR(ni.img_chemin, '\', -1)) IMG_CHEMIN from images nl
    Regardez bien la requête.
    Celle ci fonctionne correctement sur sqlDeveloper et sqlExplorer.
    En revanche, en programmation cela ne fonctionne pas.
    Explication et solution :
    Il me sembler que ceci est du au driver jdbc qui ne remplace le '\' par '\\' ce que me semble faire sqlDeveloper et sqlExplorer.

    Donc, remplacer '\' par '\\' résoud tous ces problemes.


    Merci beaucoup.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Je dirais plutot que t'as mis le \ dans une string java sans le doubler genre


    String query =" blabla \' blabla" au lieu de "blabla \\' blabla"

    Rappel, en java, entre les " ", les \ est un caractère d'échappement, servant nottement pour \n \t \u1254 (caractère unicode) etc.

  6. #6
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    Absolument !

    Merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/07/2014, 14h57
  2. [TinyMCE] (php) strip_tags() ne fonctionne pas sur le texte renvoyé par un textarea
    Par jekif dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 03/11/2011, 18h20
  3. Réponses: 7
    Dernier message: 10/02/2006, 18h00
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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