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 :

Formatage des nombres


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut Formatage des nombres
    Bonjour,

    j'ai le problème suivant si quelqu'un peut m'aider.
    En fait je récupère un champs de
    type number(12,2) d'une base de donnée oracle. Je dois formater ce
    champs en supprimant la virgule et en réservant les deux derniers
    caractères au chiffre se trouvant après la virgule et les dix premiers
    au chiffre précédant la virgule.
    Par exemple (2 --> 000000000200,
    2,5 --> 000000000250
    et 2,55 --> 000000000255)

    y a-t-il une possibilité de faire ce formatage dans ma requête sql (dans le select) ou bien je dois passer par un langage de programmation pour le faire

    Merci pour votre aide
    Cdlt
    ammah

  2. #2

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut
    Merci de votre réponse,

    Je n'ai pas pu comprendre comment la fonction to_charpeut résoudre mon problème.
    mon souci est que je dois compléter chaque number avec des '0' avant et après la virgule. par conséquent il faut que je sache qu'il y a une virgule et ensuite ajouter le bon nombre de zeros selon le nombre de chiffres suivant et précédant cette virgule.


    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 77
    Par défaut
    Tu peux toujours essayer un query de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select lpad(2.05*100,12,'0')
    from dual
    En supposant que 2.05 est le nombre que tu veux transformer

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Le plus simple est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(value, '09999999999V99')
    Example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> select to_char(2.55, '09999999999V99') from dual;
     
    TO_CHAR(2.55,
    --------------
     0000000000255
     
    SQL>
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut
    Merci à vous tous.
    Pour le moment j'ai testé la solution proposée par M. dragon74 et elle marche bien.

    Je vais essayé celle avec le to_char.

    Bien cordialement
    ammah

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut formatage des nombres
    Bonjour,

    Ma question est la suivante.
    Je récupère un champs de type number(12,2) d'une base de donnée oracle. Je dois formater ce champs en supprimant la virgule et en réservant les deux derniers caractères au chiffre se trouvant après la virgule et les dix premiers
    au chiffre précédant la virgule.
    Par exemple (2 --> 000000000200,
    2,5 --> 000000000250
    et 2,55 --> 000000000255)

    On m'a proposé d'utiliser lpad ou to_char pour résoudre mon problème. les deux solutions marchent.
    Mon souci maintenant est que le number peut être négatif ou positif et pour prendre ça en compte je dois afficher devant chaque number le signe "+" ou "-" suivant le cas.
    pouvez vous m'aider afin de réaliser cette tâche


    Bien cordialement
    ammah

  8. #8
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(2.5 * 100,'S0000000000') From dual

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

Discussions similaires

  1. Formatage des nombres (Separateurs)
    Par Mysti¢ dans le forum Général Python
    Réponses: 2
    Dernier message: 31/03/2008, 10h18
  2. Formatage des nombres
    Par webrider dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/08/2007, 09h59
  3. formatage des nombres hexas (pading?)
    Par bulki dans le forum C
    Réponses: 1
    Dernier message: 10/05/2007, 07h20
  4. Du formatage des nombres
    Par MiJack dans le forum Delphi
    Réponses: 9
    Dernier message: 29/08/2006, 16h34
  5. Formatage des nombres à l'affichage
    Par nbutin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 13/07/2004, 10h54

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