Spécialisation et Référence (bdd objet)
Bonjour,
Comme l'indique le titre, je travaille actuellement sur une base de données objet et je voudrais :
- Créer un type NomType0
- Créer une table NomTable0 de NomType0
- Créer un type NomType1
- Créer un type NomType2 qui spécialise NomType1, ce type contient un attribut qui est une référence à NomType0
- Créer une table objet NomTable1 composée de NomType2
- Faire des insertions dans NomTable1
Ce qui donne pour l'instant en SQL :
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 TYPE NomType0 AS OBJECT(
Libelle CHAR(30),
Niveau CHAR(30),
Groupe Groupe_T); //Groupe_T est un type
CREATE TABLE NomTable0 OF NomType0 (primary key(Libelle, Niveau))
NESTED TABLE Groupe STORE AS Groupeobjet_tab
CREATE TYPE NomType1 AS OBJECT (
Num CHAR(5),
Nom VARCHAR(30),
Prenom VARCHAR(30),
Annee Annee_T,
Adresse Adresse_T) not final;
CREATE TYPE NomType2 UNDER NomType1 (
NumC char(10),
Curs REF NomType0
) final;
CREATE TABLE NomTable1 OF NomType2;
INSERT INTO NomTable1
VALUES ('00000', 'nom', 'prenom', Annee_T(1900), Adresse_T('12', 'rue de Rennes', 'Paris'),'1045534', NULL);
UPDATE NomTable1 SET Curs = (SELECT REF(c) FROM NomTable0 c WHERE c.Libelle = 'libel' AND c.Niveau = 'niv') WHERE NumC = '1045534'; |
Le problème c'est que l'insertion dans NomTable1 ne fonctionne pas et je ne parviens pas à voir pourquoi. J'ai bien des données dans Nomtable0 donc à priori ce n'est pas ça.
Peut-être auriez-vous une piste ?