Insertion de références par OID (INSERT)
Pour faire une référence avec un OID, il est nécessaire de récupérer l'OID correspondant à l'enregistrement que l'on veut référencer.
L'OID est accessible grâce à la syntaxe REF en SQL3.
Sous Orcale, on utilisera une procédure PL/SQL pour récupérer l'OID dans une variable avant de pouvoir l'insérer.
Syntaxe : REF
1
SELECT REF(alias)
2
FROM nom_table alias
1
0000280209DB703686EF7044A49F8FA67530383B36853DE7106BC74B6781275ABE5A553A5F01C000340000
Syntaxe : Insertion de données en PL/SQL
1
DECLARE
2
variable REF type_objet;
3
BEGIN
4
SELECT REF(alias) INTO variable
5
FROM table2 alias
6
WHERE clé_table2='valeur';
7
8
INSERT INTO tCours (champs1, ..., clé_étrangère)
9
VALUES ('valeur1', ..., variable);
10
END;
Exemple :
1
DECLARE
2
refI REF typIntervenant;
3
BEGIN
4
INSERT INTO tIntervenant (pknom, prenom)
5
VALUES ('CROZAT', 'Stéphane');
6
7
SELECT REF(i) INTO refI
8
FROM tIntervenant i
9
WHERE pknom='CROZAT';
10
11
INSERT INTO tCours (pkannee, pknum, titre, type, debut, refintervenant)
12
VALUES ('2003', 1, 'Introduction','C', '01-JAN-2001', refI);
13
14
INSERT INTO tCours (pkannee, pknum, titre, type, debut, refintervenant)
15
VALUES ('2003', 2, 'Modélisation','TD', '02-JAN-2001', refI);
16
END;
17
/