Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2010, 19h14   #1
Invité de passage
 
ACHRAF HADDAR
Inscription : juillet 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : ACHRAF HADDAR

Informations forums :
Inscription : juillet 2010
Messages : 16
Points : 1
Points : 1
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 :
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 :
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 :
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.
haddarachraf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 20h20   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 680
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 680
Points : 10 473
Points : 10 473
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
J'ai effectué votre test sur une 11.1.0.7.0 et tout fonctionne :
Code :
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 :
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 :
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
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 21h12   #3
Invité de passage
 
ACHRAF HADDAR
Inscription : juillet 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : ACHRAF HADDAR

Informations forums :
Inscription : juillet 2010
Messages : 16
Points : 1
Points : 1
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 :
1
2
SELECT NumMission, DateMission, deref(RefVehicule)
  FROM mission;
Est ce que c'est faux ?
Merci beaucoup pour vos aides
haddarachraf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h22   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 680
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 680
Points : 10 473
Points : 10 473
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ça fonctionne aussi, ça donne par contre la colonne sous forme de type :
Code :
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)
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 23h11   #5
Invité de passage
 
ACHRAF HADDAR
Inscription : juillet 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : ACHRAF HADDAR

Informations forums :
Inscription : juillet 2010
Messages : 16
Points : 1
Points : 1
Par contre pour moi ça me donne :
Code :
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
haddarachraf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web