Extension THE

DéfinitionTHE

La clause THE est une extension du LMD[1] permettant de manipuler les objets (scalaires ou enregistrements) dans les collections implémentées sous forme de tables imbriquées.

Syntaxe

Appuyer sur espace pour rester en pause.
  • INSERT INTO THE (SELECT ...) VALUES (...)

  • DELETE THE (SELECT ...) WHERE ...

  • UPDATE THE (SELECT ...) SET ... WHERE ...

ExempleINSERT d'un scalaire ou d'un enregistrement dans une collection

Appuyer sur espace pour rester en pause.
1
INSERT INTO tIntervenant (pknom, prenom, bureau, ltelephones, lspecialites)
2
VALUES (
3
'Dumas', 
4
'Leonard', 
5
typBureau('R','C',123),
6
typListeTelephones(0344234423),
7
typListeSpecialites()
8
);
9
10
INSERT INTO THE (SELECT i.ltelephones FROM tIntervenant i WHERE i.pknom='Dumas')
11
VALUES (0666666666);
12
13
INSERT INTO THE (SELECT i.lspecialites FROM tIntervenant i WHERE i.pknom='Dumas')
14
VALUES (typSpecialite('BD','SGBDR'));

Remarque

L'emploi de typListeSpecialites() permet de déclarer une collection imbriquée vide dans tIntervenant. La collection ne contient aucun élément initialement, ils peuvent être ajoutés ultérieurement grâce à l'instruction INSERT INTO THE.

ExempleDELETE d'un objet dans une collection

Appuyer sur espace pour rester en pause.
1
DELETE THE (SELECT i.ltelephones FROM tIntervenant i WHERE i.pknom='Dumas') nt
2
WHERE nt.COLUMN_VALUE=0344234423;

ExempleUPDATE d'un objet dans une collection

Appuyer sur espace pour rester en pause.
1
UPDATE THE (SELECT i.lspecialites FROM tIntervenant i WHERE i.pknom='Dumas') nt
2
SET nt.technologie='SGBDRO'
3
WHERE nt.domaine='BD';