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 :

Problème Ref 11g


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Par défaut Problème Ref 11g
    Salut tous le monde .
    Je suis encore un débutant en sql3 et je travaille sous Sql Developper de oracle 11g, Mon probléme et comme suis :

    j'ai crée 2 type objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create or replace type TVehicule as object
    (
      Tonnage number(6),
      Immat varchar(15)
    );
     
    create or replace type TMission as object
    (
      NumMission number(6),
      DateMission date,
      RefVehicule ref TVehicule,
      member function CalculerTonnage return number
    );
    puis 2 table objet à partir des type crées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table Vehicule of TVehicule
    (
      Immat primary key
    );
     
    create table Mission of TMission
    (
      NumMission primary key
    );
    ensuite j'ai inséré une ligne dans vehicule sans problème
    mais quand j'ai inséré une ligne dans Mission :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into mission
    select 1,'15/11/2010', ref(V)
      from Vehicule V
     where Immat = '5400 tunis 94';
    La ligne est ajouté mais la référence RefVehicule reste vide, elle ne pointe sur aucune véhicule et ça m'a vraiment coincé.

    Merci d'avance pour vos commentaires et conseils que vous pourrez m'apporter.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    J'ai effectué votre test sur une 11.1.0.7.0 et tout fonctionne :
    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
    CREATE OR REPLACE type TVehicule AS object
    (
      Tonnage number(6),
      Immat varchar(15)
    );
    -- Type created.
     
    CREATE OR REPLACE type TMission AS object
    (
      NumMission number(6),
      DateMission date,
      RefVehicule ref TVehicule,
      member FUNCTION CalculerTonnage RETURN number
    );
    -- Type created.
     
    CREATE TABLE Vehicule of TVehicule
    (
      Immat PRIMARY KEY
    );
    -- Table created.
     
    CREATE TABLE Mission of TMission
    (
      NumMission PRIMARY KEY
    );
    -- Table created.
    Insertion des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    insert into Vehicule values (1000, '5400 tunis 94');
    -- 1 row created.
     
    commit;
    -- Commit complete.
     
    INSERT INTO mission
    SELECT 1,to_date('15/11/2010', 'dd/mm/yyyy'), ref(V)
      FROM Vehicule V
     WHERE Immat = '5400 tunis 94';
    -- 1 row created.
     
    commit;
    -- Commit complete.
    Sélection des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select * from vehicule;
     
       TONNAGE IMMAT          
    ---------- ---------------
          1000 5400 tunis 94
     
    select m.nummission, m.datemission,
           m.RefVehicule.Tonnage,
           m.RefVehicule.Immat 
      from mission m;
     
    NUMMISSION DATEMISSIO REFVEHICULE.TONNAGE REFVEHICULE.IMMAT 
    ---------- ---------- ------------------- -----------------
             1 15/11/2010                1000 5400 tunis 94

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Par défaut
    Salut Waldar, oui c'est vrai tout marche bien chez vous et c'est grâce à une différence entre nous lors du test .
    je teste avec une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select NumMission, DateMission, deref(RefVehicule)
      from mission;
    Est ce que c'est faux ?
    Merci beaucoup pour vos aides

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Ça fonctionne aussi, ça donne par contre la colonne sous forme de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT m.nummission,
           m.datemission,
           m.RefVehicule.Tonnage as Tonnage,
           m.RefVehicule.Immat   as Immat,
           deref(RefVehicule)    as RefVehicule
      FROM mission m;
     
    NUMMISSION DATEMISSION TONNAGE IMMAT         REFVEHICULE
    ---------- ----------- ------- ------------- -----------------------------
             1 15/11/2010     1000 5400 tunis 94 TVEHICULE(1000,5400 tunis 94)

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Par défaut
    Par contre pour moi ça me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT m.nummission,
           m.datemission,
           m.RefVehicule.Tonnage AS Tonnage,
           m.RefVehicule.Immat   AS Immat,
           deref(RefVehicule)    AS RefVehicule
      FROM mission m;
     
    NUMMISSION             DATEMISSION               TONNAGE                IMMAT        REFVEHICULE
    -------------------------------------------------------------------------------------------------------------------------------------------------- 
    1                      15/11/10                  109                    5400 tunis 94   HR.TVEHICULE

Discussions similaires

  1. [11gR2] Problème dbconsole 11g
    Par travail2009 dans le forum Administration
    Réponses: 2
    Dernier message: 12/02/2014, 20h43
  2. [XL-2003] Problème REF avec RECHERCHEV
    Par Invité dans le forum Excel
    Réponses: 2
    Dernier message: 04/10/2013, 20h42
  3. Problème Installation Oracle 11g et anciennes
    Par lynal dans le forum Installation
    Réponses: 0
    Dernier message: 01/11/2007, 16h29
  4. Problème \label et \ref
    Par olivier1978 dans le forum Mise en forme
    Réponses: 2
    Dernier message: 04/10/2007, 22h30
  5. Problème avec \label et \ref
    Par Anamelech dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 14/12/2006, 09h57

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