Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 17/03/2007, 11h57   #1
Invité de passage
 
Inscription : mars 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 2
Points : 1
Points : 1
Par défaut creation de tables imbriquées

Bonjour,

j'ai un type qui contient une table imbriquée d'un autre type qui contient elle-même une table imbriquée...

comment je peut créer une table objet à partir de ce type ?

pour exemple, voici le type principal dont je veux créer une table objet :

CREATE OR REPLACE Type Tpersonne as object
(
id_personne varchar2(50),
Inscriptions NTinscription
)

le type imbriqué NTinscription :
CREATE OR REPLACE Type NTinscription as TABLE OF Tinscription;

qui fait appel au type Tinscription :
CREATE OR REPLACE TYPE TInscription AS OBJECT
(
options NT_RefOptions
)

qui fait appel au type imbriqué NT_RefOptions :
CREATE TYPE NT_RefOptions AS TABLE OF REF TOption;

qui fait appel au type simple (enfin) TOption :
CREATE OR REPLACE TYPE TOption AS OBJECT
(
libelle VARCHAR2(30),
prix NUMBER
)



Voila, pour créer la table objet de personne je fais :
CREATE TABLE Opersonne OF Tpersonne (Constraint pk_personne primary key(id_personne)) nested table Inscriptions store as NTinscription_tab;

mais oracle me répond :
ERREUR à la ligne 1 :
ORA-02320: Echec de création d'une table de stockage pour la colonne de table imbriquée INSCRIPTIONS
ORA-22913: il est impératif d'associer un nom de table à une colonne ou un
attribut de table imbriquée

et je ne sais pas comment on fait pour spécifier le nom de table pour le type imbriqué NT_RefOptions

Pouvez-vous m'aider ?

PS: je suis sur oracle 9i.2
alexis34000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 14h48   #2
Invité de passage
 
Inscription : mars 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 2
Points : 1
Points : 1
j'ai trouvé il fallait simplement rajouter une autre clause nested table entre parenthèse pour spécifier la table des options.
ce qui donne :

CREATE TABLE Opersonne OF Tpersonne (Constraint pk_personne primary key(id_personne)) nested table Inscriptions store as NTinscription_tab (nested table options store as NTrefoptions_tab);

alexis34000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web