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

SQL Oracle Discussion :

[11g] Précision SELECT ou affichage ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Par défaut [11g] Précision SELECT ou affichage ?
    Bonsoir,

    Sous TOAD je me connecte à une base Oracle 11g et j'exécute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table toto (toto number(38,28));
     
    insert into toto (toto) values (123.12345678901234567 );
    commit;
     
    select toto , to_char(toto) from toto;
    Voici le résultat obtenu :
    123.123456789012 | 123,12345678901234567
    Donc en base les 17 chiffres après la virgule sont bien présents (puisque le to_char les restitue bien). Mais quand on l'affiche avec un select il n'y en a plus que 12 (il arrondi à la 12ième décimal et nous l'affiche).

    C'est embétant parce que lorsque j'exécute cette même requete depuis mon ETL le comportement est identique. Donc au lieu de manipuler dans les traitements un réel avec 17 décimal, l'ETL ne travaille qu'avec 12 décimal...

    Est ce qu'il y a un paramétrage de la base Oracle à faire pour que le SELECT n'arrondisse pas et remonte le nombre avec toutes ses décimales ?

    Ou quelqu'un aurait il une autre piste sous Oracle ?

    Merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Que donne un dump de toto ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT toto , dump(toto), to_char(toto) FROM toto;

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Par défaut
    Citation Envoyé par McM Voir le message
    Que donne un dump de toto ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT toto , dump(toto), to_char(toto) FROM toto;
    Merci pour ta réponse. Voici le résultat obtenu :

    toto =123.123456789012
    dump(toto) = 'Typ=2 Len=12: 194,2,24,13,35,57,79,91,13,35,57,71'
    to_char(toto) = 123,123456789012345674567

    Et j'obtiens le même résultat avec
    SELECT toto , dump(toto,10), to_char(toto) FROM toto
    et
    SELECT toto , dump(toto,1010), to_char(toto) FROM toto

    Je ne sais pas si je lis bien le résultat de cette fontion m'ais j'en déduis que sa longueur est sur 12 bytes. Je ne sais pas quelle longueur en caractère cela donne... Par ailleurs je ne comprends pas pourquoi le fait de rajouter le second paramètre ne me formate pas la sortie en nombre décimal.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    J'ai le même dump sous 9i, par contre mon select sous toad me ramène bien tous les chiffres.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 41
    Par défaut
    Citation Envoyé par McM Voir le message
    J'ai le même dump sous 9i, par contre mon select sous toad me ramène bien tous les chiffres.
    A ton avis pourrait il s'agir d'un paramètrage de la base de données ?

    De toute façon ca n'est pas un problème de stockage en base. C'est un problème de récupération de la donnée.

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Surement un bug de la version 11. Vérifie sur Oracle Support et ouvre un SR si nécessaire.
    recherche "precision loss", tu trouveras quelques bugs corrigés dans des patchs.
    exemple le n° 7489902

Discussions similaires

  1. Requète select et affichage des données.
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/10/2009, 09h09
  2. <html:select> pb affichage liste
    Par Melaba dans le forum Struts 1
    Réponses: 14
    Dernier message: 01/08/2008, 16h19
  3. [Spring Portlets] select paramétré+affichage jsp
    Par myriam818 dans le forum Spring Web
    Réponses: 0
    Dernier message: 06/12/2007, 17h42
  4. Pb requete select et affichage datas
    Par lorderon85 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/01/2007, 17h57
  5. [MySQL] select avec affichage conditionnel
    Par encoupe dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2005, 23h46

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