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 :

[jdbc][oracle] conversion implicite erronée


Sujet :

JDBC Java

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 25
    Points : 44
    Points
    44
    Par défaut [jdbc][oracle] conversion implicite erronée
    Bonjour,

    Je me permets de poster ce petit problème car une recherche avancée ne m'a rien donné.
    En fait en utilisant le driver jdbc : ojdbc14.jar dernière version et en executant la requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rs = stmt.executeQuery("SELECT 0.5 FROM DUAL");
    if (rs.next() {System.out.println(rs.getString(1);}
    j'obtiens
    0.5
    mais lorsqu'il y a conversion implicite le résultat est différent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rs = stmt.executeQuery("SELECT 'TOTO ' || 0.5 FROM DUAL");
    if (rs.next() {System.out.println(rs.getString(1);}
    j'obtiens
    TOTO ,5
    comment faire pour obtenir TOTO 0.5 c'est à dire que la conversion implicite ne transforme pas le point en virgule.
    pour info : je suis sous windows (XP, 2000, 2003 server) avec jdbc v 9.2.0.5
    mes paramètres régionaux indique comme séparateur: le point.

    Merci pour votre aide
    Kind regards
    Jack

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    ... une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 'TOTO ' || to_char(0.5,'0.9') FROM DUAL

    mais le + simple serait d'écrire une fonction noyau ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select fct_toto ( strChaine, xNumber ) from dual ;

    cordialement

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 25
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par taska
    ... une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 'TOTO ' || to_char(0.5,'0.9') FROM DUAL
    mais le + simple serait d'écrire une fonction noyau ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select fct_toto ( strChaine, xNumber ) from dual ;
    cordialement
    merci pour ta solution, le deuxième n'est ps possible puisque la requete est construite dynamiquement à partir de paramètres envoyés au travers d'objet contenu dans la session de tomcat.
    donc en fait je fais une concaténation de champs VARCHAR2 ou NUMBER et je ne sais pas ce qu'ils ont comme genre, je n'ai pas les moyens de le détecter.
    c'est la conversion implicite qui merdouille via JDBC.
    sous SQLPlus il n'y a pas de problème.

    ta solution 1 est très séduisante sauf que ça me limite a niveau du nombre de chiffres après la virgule. Or ce nombre je ne le connais pas.
    je peux avoir des nombres tel que 0.124e-07 voir 0.0000000124
    ne connaissant pas le format des numbers je ne peux pas forcer un formattage particulier.

    Donc en fait je pensais à faire quelque chose au niveau du NLS_charset.

    quoi qu'il en soit, merci pour tes solutions.
    Cheers
    Jack

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

Discussions similaires

  1. [jdbc][oracle] télécharger le bon driver
    Par java_fun dans le forum JDBC
    Réponses: 12
    Dernier message: 20/09/2005, 16h06
  2. [JDBC]Auto Commit Implicite (vicieux?)
    Par Jie.N dans le forum JDBC
    Réponses: 4
    Dernier message: 08/08/2005, 18h11
  3. Réponses: 9
    Dernier message: 07/07/2005, 13h46
  4. [JDBC] [ORACLE] Récupérer Id auto-inséré ???
    Par Bobsinglar dans le forum JDBC
    Réponses: 4
    Dernier message: 30/05/2005, 17h13
  5. [JDBC] [Oracle] Erreur : End of TNS data channel
    Par loicmillion dans le forum JDBC
    Réponses: 2
    Dernier message: 01/02/2005, 15h27

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