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 :

Utilisation du to_char


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut Utilisation du to_char
    Bonsoir,
    j'essaye de sortir dans un fichier un résultat qui devrait être 0.02
    Le résultat en question est un calcul que je réalise dans une requête, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select round( (1/66),'2') from dual
    Lorsque j'écris dans mon fichier via utl_file , j'ai le résultat suivant :
    Et effectivement si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char( round( (1/66),'2')) from dual
    Le résultat est bien .02 => Est-ce que quelqu'un sait pourquoi je perd l'unité dans l'affichage lorsque celle-ci est 0 ?

    J'ai essayé d'utiliser le masque suivant mais j'ai toujours le même résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char( round( (1/66),'2'),'9999.99') from dual
    Merci pour toute info,
    Lek

  2. #2
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Salut,

    Il faut mettre un 0 pour l'afficher,

    exemple pour afficher 0.02 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TO_CHAR( round( (1/66),'2'), '0.99') FROM dual
    Edit : Tu trouveras ici tous les formats possibles :

    http://docs.oracle.com/cd/B19306_01/...lements004.htm

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Le second argument de la fonction ROUND est un entier, par conséquent pas besoin des apostrophes.

    Il faut bien utiliser la fonction TO_CHAR et ne pas se tromper sur le masque de saisie.
    Je vous conseille l'argument FM dans ce dernier qui va supprimer des espaces en trop.

    Sur votre exemple c'est assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(round(1/66, 2), 'fm990.99') as res FROM dual;
     
    RES
    ----
    0.02
    Mais si le format n'est pas assez grand :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(round(9999999999/66, 2), 'fm990.99') as res FROM dual;
     
    RES
    -------
    #######

  4. #4
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Bonsoir,
    merci pour vos explications : j'avais parcouru la doc avant de poster, mais je n'avais pas compris visiblement l'utilisation du masque. Pur l'argument de round : je m'étais trompé effectivement en postant mon exemple.

    merci à vous,
    Lek

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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