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 :

conversion char -> float


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de divail
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut conversion char -> float
    J'aimerais créer une vue en récupérant certains champs d'une table mais j'aimerais convertir l'un d'entre eux de type 'char(16)' en 'float'.

    MyTable (..., montant char(16), ...)
    ->
    MyView(..., montant float,...)

    J'ai essayé d'utiliser la fonction to_number (cf. ci-dessous) mais je rencontre ensuite des problèmes au niveau du type de données sous Business Objects. Existe-il une fonction du style "to_float" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE OR REPLACE VIEW MY_VIEW
    (..., MONTANT, ...)
    AS 
    select
       ...,
       to_number(montant) montant,
       ,
       ...  
    from MY_TABLE
    /
    Merci.

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    to_number(char) te retournera un NUMBER. Si tu veux le transformer en quelque chose d'autre, tu peux employer cast.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SQL> create or replace view v as select to_number('1.2') n1, 
    cast(to_number('1.2') as float) n2 from dual;
     
    View created.
     
    SQL> desc v
     Name              Null?    Type
     ----------------- -------- ------------
     N1                         NUMBER
     N2                         FLOAT(38)

  3. #3
    Membre confirmé Avatar de divail
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 65
    Par défaut
    J'ai essayé d'utiliser cast(to_number(...) as float). Mais une fois la vue créée, quand je fais un 'desc', on m'indique que le champ de la vue est toujours de type number...
    Pour info, ma version d'oracle est la 8.1.7.4.
    Auriez-vous une idée?
    Merci.

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    autre que CAST, non. je n'ai pas de 8i pour essayer

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par laurentschneider
    autre que CAST, non. je n'ai pas de 8i pour essayer
    si j'y pense, j'essayerai lundi, quand j'aurai une 8i sous la main

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par laurentschneider
    si j'y pense, j'essayerai lundi, quand j'aurai une 8i sous la main
    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
    8i CYRIL> select banner from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
    PL/SQL Release 8.1.7.4.0 - Production
    CORE    8.1.7.0.0       Production
    TNS for Linux: Version 8.1.7.4.0 - Production
    NLSRTL Version 3.4.1.0.0 - Production
     
    5 ligne(s) sélectionnée(s).
     
    8i CYRIL> create or replace view v as select to_number('1.2') n1,
      2  cast(to_number('1.2') as float) n2 from dual;
     
    Vue créée.
     
    8i CYRIL> desc v;
     Nom                            Null ?    Type
     ------------------------------- -------- ----
     N1                                       NUMBER
     N2                                       NUMBER
     
    8i CYRIL>

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

Discussions similaires

  1. Conversion de char en float
    Par mansgueg dans le forum C++
    Réponses: 2
    Dernier message: 08/03/2011, 12h56
  2. conversion char wide char
    Par ep31 dans le forum MFC
    Réponses: 4
    Dernier message: 15/11/2005, 08h14
  3. Pb Invalid Conversion "char" to "char*"
    Par kazarn dans le forum C++
    Réponses: 3
    Dernier message: 02/03/2005, 13h24
  4. Conversion char * vers wchar_t
    Par Zapan dans le forum C++
    Réponses: 4
    Dernier message: 24/02/2005, 15h56
  5. Réponses: 3
    Dernier message: 26/05/2004, 23h03

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