CREATE TYPE type_objet AS OBJECT ...
CREATE TABLE table1 OF type_objet ...
CREATE TABLE table2 (
...
clé_étrangère REF type_objet,
SCOPE FOR (clé_étrangère) IS table1,
);
Renforce l'intégrité référentielle en limitant la portée de la référence à une table particulière (alors que REF seul permet de pointer n'importe quel objet de ce type)
CREATE OR REPLACE TYPE typCours AS OBJECT(
pkannee number(4),
pknum number(2),
titre varchar2(50),
type char(2),
refintervenant REF typIntervenant,
debut date,
MEMBER FUNCTION fin RETURN date
);
/
CREATE TABLE tCours OF typCours (
CHECK (pkannee>2000 and pkannee<2100),
type NOT NULL,
CHECK (type='C' or type='TD' or type='TP'),
refintervenant NOT NULL,
SCOPE FOR (refintervenant) IS tIntervenant,
PRIMARY KEY(pkannee, pknum)
);