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 :

Création d'une vue


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 25
    Par défaut Création d'une vue
    Bonjour,

    Je voudrais créer une vue dont un champs calculé soit définie de type number(11,2) et non number.

    Voici un petit exemple :

    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
    SQL> create table test1 ( 
      2   col1 number(11,2),
      3   col2 number (11,2)
      4  )
      5  /
     
    Table créée.
     
    SQL> create or replace view vtest1 as select
      2   col1,
      3   col2,
      4   col1 + col2 as "res"
      5  from test1
      6  /
     
    Vue créée.
     
    SQL> desc vtest1
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     COL1                                               NUMBER(11,2)
     COL2                                               NUMBER(11,2)
     res                                                NUMBER
    J'ai déjà essayer la focntion CAST mais ça ne donne rien du tout.
    Est-ce que quelqu'un a une idée ?

    Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    je ne comprends pas l'intérêt

    c'est pas ROUND(col1+col2) que tu cherches plutôt ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 25
    Par défaut
    Citation Envoyé par orafrance Voir le message
    je ne comprends pas l'intérêt

    c'est pas ROUND(col1+col2) que tu cherches plutôt ?
    Non c'est juste un exemple. Je constate seulement que dès que l'on fait des opérations de calcul dans une vue, Oracle transforme le type du champs en Number. Mois je voudrais qu'il garde le type avec la précision donnée.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas possible, dés lors que tu fais une opération Oracle ne peut pas choisir pour toi. Si tu fait un ROUND tu forceras l'affichage sur le format souhaité mais ça ne changera pas le type (ce qui n'a pas grand intérêt d'ailleurs).

  5. #5
    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
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production JServer Release 9.2.0.5.0 - Production
    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
     
    create or replace view v_emp as
    select empno, ename,job,mgr,hiredate,sal,Cast(sal + Nvl(comm,0) As Number(7,2))  TotSal,deptno
    from scott.emp
     
    SQL> desc v_emp
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     EMPNO                                     NOT NULL NUMBER(4)
     ENAME                                     NOT NULL VARCHAR2(10)
     JOB                                       NOT NULL VARCHAR2(9)
     MGR                                                NUMBER(4)
     HIREDATE                                  NOT NULL DATE
     SAL                                       NOT NULL NUMBER(7,2)
     TOTSAL                                             NUMBER(7,2)
     DEPTNO                                             NUMBER(2)

  6. #6
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 25
    Par défaut
    Je vient de tester cette exemple en 8.1.7 et ça ne fonctionne pas.
    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
     
    SQL> create table test1 ( 
      2   col1 number(11,2),
      3   col2 number (11,2)
      4  )
      5  /
     
    Table créée.
     
    SQL> create or replace view vtest1 as
      2  SELECT col1, col2, Cast(col1 + Nvl(col2,0) AS Number(11,2))  res
      3  FROM test1
      4  /
     
    Vue créée.
     
    SQL> desc vtest1
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     COL1                                               NUMBER(11,2)
     COL2                                               NUMBER(11,2)
     RES                                                NUMBER
     
    SQL>
    Quelqu'un a-t-il une autre idée ?

Discussions similaires

  1. création d'une vue ...help
    Par menoce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/07/2005, 21h30
  2. Réponses: 26
    Dernier message: 27/04/2005, 11h29
  3. Création d'une vue
    Par Xris dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/01/2005, 16h30
  4. Réponses: 7
    Dernier message: 12/07/2004, 22h30
  5. [Plugin] Création d'une vue dynamiquement
    Par The Bonze dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 15/06/2004, 13h23

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