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

Oracle Discussion :

Accès au champ d'un type personnalisé


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Points : 38
    Points
    38
    Par défaut Accès au champ d'un type personnalisé
    Bonjour,

    J'ai créé un type address comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     STREET                                             VARCHAR2(20)
     CITY                                               VARCHAR2(20)
    et je l'ai utilisé dans ma table person :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     PERSON_ID                                          NUMBER(3)
     PERSON_FIRSTNAME                                   VARCHAR2(20)
     PERSON_LASTNAME                                    VARCHAR2(20)
     PERSON_ADDRESS                                     ADDRESS
     PERSON_BIRTHDAY                                    DATE
    Comment puis-je accéder au champ CITY avec un select par exemple ?

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select person_address.CITY from person
    mais ça ne fonctionne pas...

    Quelqu'un aurait une idée ?

  2. #2
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Cela devrait fonctionner.

    Sinon, auriez-vous un message d'erreur un peu plus précis ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Juste pour préciser, voici mon insertion dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
            ad address;
    begin
            ad := address('Ch. de la Croix','Lausanne');
            insert into person values (1,'Petit', 'Pierre',ad,'05/12/1963');
     
    end;
    Citation Envoyé par SheikYerbouti
    Cela devrait fonctionner.

    Sinon, auriez-vous un message d'erreur un peu plus précis ?
    L'erreur : ORA-00904: invalid column name

  4. #4
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Il faut utiliser un alias de table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select t.xx, t.adresse.city from the_table t ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Tout juste, maître !

    Bien vu

    Il y a quand des trucs spéciaux dans Oracle comme les dates ! J'arrive pas à récupérer uniquement le mois d'un champ date sans passer par un to_char...

  6. #6
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Et comment faites-vous pour récupérer les dizaines d'un champs NUMBER, hum ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par SheikYerbouti
    Et comment faites-vous pour récupérer les dizaines d'un champs NUMBER, hum ?
    Instinctivement, je divise par 10, et s'il le faut, je tronque. Pourquoi ?

  8. #8
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par maredami
    Citation Envoyé par SheikYerbouti
    Et comment faites-vous pour récupérer les dizaines d'un champs NUMBER, hum ?
    Instinctivement, je divise par 10, et s'il le faut, je tronque. Pourquoi ?
    Alors pourquoi cela vous choque t-il de passer par un To_char() pour récupérer le mois d'une date ?

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Pour extraire le mois d'une donnée de type DATE, on peut utiliser en version 9 ou 10, la fonction EXTRACT comme dans:

    SELECT EXTRACT(month FROM order_date) "Month",
    COUNT(order_date) "No. of Orders"
    FROM orders
    GROUP BY EXTRACT(month FROM order_date)
    ORDER BY "No. of Orders" DESC;

    On peut aussi extraite l'année, le jour, les heures etc..

    pour plus d'info: voir EXTRACT(datetime) dans

    Oracle® Database SQL Reference
    10g Release 2 (10.2)
    Part Number B14200-01

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

Discussions similaires

  1. Créer un champs de type personnalisé.
    Par hassine dans le forum SharePoint
    Réponses: 7
    Dernier message: 30/03/2009, 10h40
  2. Réponses: 3
    Dernier message: 14/01/2008, 18h35
  3. Réponses: 9
    Dernier message: 27/10/2005, 18h15
  4. Focus fenêtre + accès aux champs
    Par Pymm dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/07/2005, 12h07
  5. Champs de mauvais type
    Par sebos63 dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/06/2004, 16h07

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