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 :

Transformer 4.44 en 4.4400


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut Transformer 4.44 en 4.4400
    Bonjour,

    je souhaiterais savoir comment mettre tous champs de ma table avec des décimales sur 4 caractères même si elles n'en possèdent que 2. par exemple je veux pouvoir récupérer 4.4400 pour un champ ayant la valeur 4.44.

    J'ai essayé le ROUND(4.44,4) mais ça ne marche pas.

  2. #2
    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
    si c'est pour faire un select, alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(value, '99999999999999999999999999.9999')
    A modifier pour que cela concorde avec la définition du champs.
    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

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Ca sert à quoi de modifier la table ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SQL> col num format 9.9999
    SQL> select 4.44 from dual;
     
          4.44
    ----------
          4.44
     
    SQL> select 4.44 num from dual;
     
        NUM
    -------
     4.4400
     
    SQL>

  4. #4
    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
    Citation Envoyé par mnitu Voir le message
    Ca sert à quoi de modifier la table ?
    quand je dis modifier, c'est modifier le pattern du to_char()...
    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

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    le problème avec cette solution c'est qu'il me met des décimales pour les valeurs entières.
    ex: 10 devient 10.0000

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    quand je dis modifier, c'est modifier le pattern du to_char()...
    Salut Vicenzo,

    Ma remarque n'a rien à voir avec ta réponse, elle a été fait avant.

  7. #7
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par farenheiit Voir le message
    le problème avec cette solution c'est qu'il me met des décimales pour les valeurs entières.
    ex: 10 devient 10.0000
    Ta table, plus précisement ta colonne, contient des réelles (Number(???,4)). En fait c'est quoi ton vrai problème ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    en fait j'ai une colonne dans ma table qui est un NUMBER.
    j'ai certaines valeures décimales pour ce champ. Certaines valeurs ont 2 chiffres après la virgule et d'autres en ont 4. Le maximum de chiffres après la virgule est de 4. Je voudrais faire un select dans ma table en mettant toutes les valeurs décimales à 4 chiffres après la virgules même celles qui n'en ont que 2. Par contre je veux que les valeurs entières restent entières.
    ex: j'ai les 3 valeurs suivantes:
    - 10
    - 25.26
    - 30.4569

    je veux que la valeur 10 reste à 10 mais que 25.26 devienne 25.2600.

    le problème avec le to_char(value, '99999999999999999999999999.9999') c'est que ma valeur 10 devient 10.0000

  9. #9
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    doit on rappeler que le SQL ne sert qu'à récupérer les données, le formatage étant à la charge de l'application tiers. Si nous ne connaissons pas l'appli que tu utilises on aura donc du mal à t'aider. C'est SQL*Plus ?

  10. #10
    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
    tu peux faire comme ca (c'est pas très beau, mais...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    SQL> create table test (value number);
     
    Table crÚÚe.
     
    SQL>
    SQL> insert into test(value) values(10);
     
    1 ligne crÚÚe.
     
    SQL> insert into test(value) values(5.45);
     
    1 ligne crÚÚe.
     
    SQL> insert into test(value) values(6.5678);
     
    1 ligne crÚÚe.
     
    SQL>
    SQL>
    SQL> select
      2      case
      3          when
      4              value = trunc(value)  then  to_char(value, '99999999999999999999999999')
      5              else  to_char(value, '99999999999999999999999999.9999')
      6          end
      7  from
      8      test;
     
    CASEWHENVALUE=TRUNC(VALUE)THENTO
    --------------------------------
                             10
                              5.4500
                              6.5678
     
    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

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    Citation Envoyé par orafrance Voir le message
    doit on rappeler que le SQL ne sert qu'à récupérer les données, le formatage étant à la charge de l'application tiers. Si nous ne connaissons pas l'appli que tu utilises on aura donc du mal à t'aider. C'est SQL*Plus ?
    j'utilise TOAD. Mon but après est de faire un export des résultats grâce à TOAD sous forme de fichier CSV

  12. #12
    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
    la requête que je t'ai filé n'est pas belle et faite à l'arrache mais ca a l'air de correspondre à ta problèmatique
    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

  13. #13
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par farenheiit Voir le message
    j'utilise TOAD. Mon but après est de faire un export des résultats grâce à TOAD sous forme de fichier CSV
    Dans ce cas, fait un export brut, ouvre le CSV dans Excel et utilise le formatage de colonne d'Excel

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Dans ce cas, fait un export brut, ouvre le CSV dans Excel et utilise le formatage de colonne d'Excel

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut


    je m'attendais à mieux de la part d'OraFrance

  16. #16
    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
    si la requête fournie te convient, penses à mettre le flag résolu...
    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

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    mon spérateur de champ est "|". Or Excel ne reconnait pas ce séparateur par défaut et m'ouvre tous mes champs dans la même celulle. Pour Excel le séparateur par défaut est la virgule.Sais-tu comment indiquer à Excel de prendre le pipe comme séparateur?

  18. #18
    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
    là, c'est plus de l'oracle

    faut faire fichier, ouvrir, et la il te demande le séparateur perso que tu peux indiquer...
    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

  19. #19
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    génère un .txt plutôt que .csv et là Excel te demande le séparateur

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    tu peux faire comme ca (c'est pas très beau, mais...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    SQL> create table test (value number);
     
    Table crÚÚe.
     
    SQL>
    SQL> insert into test(value) values(10);
     
    1 ligne crÚÚe.
     
    SQL> insert into test(value) values(5.45);
     
    1 ligne crÚÚe.
     
    SQL> insert into test(value) values(6.5678);
     
    1 ligne crÚÚe.
     
    SQL>
    SQL>
    SQL> select
      2      case
      3          when
      4              value = trunc(value)  then  to_char(value, '99999999999999999999999999')
      5              else  to_char(value, '99999999999999999999999999.9999')
      6          end
      7  from
      8      test;
     
    CASEWHENVALUE=TRUNC(VALUE)THENTO
    --------------------------------
                             10
                              5.4500
                              6.5678
     
    SQL>
    Effectivement ta solution marche très bien.
    Toutefois j'ai une autre question. Pour mes valeurs décimales commençant par 0 (ex: "0.75") TOAD ne m'affiche pas le 0. Il m'affiche ".75". Comment faire pour avoir le 0???

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PERL] transformation de fichier
    Par bob20000 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 11h13
  2. transformer un fichire Xml en pdf
    Par SuperFoustan dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/02/2003, 11h45
  3. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 08/11/2002, 22h55
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

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