Sélection dans les collections imbriquées
Syntaxe : Accès aux tables imbriquées
Soit col
un attribut de la table t
contenant une collection imbriquée.
1
SELECT t2.*
2
FROM t t1, TABLE(t1.col) t2;
Attention : Jointure avec la table imbriquée
La jointure entre la table principale et sa table imbriquée est implicitement réalisée, il ne faut pas la spécifier.
Exemple : Accès à une collection imbriquée de scalaires
Appuyer sur espace pour rester en pause.
1
SELECT i.pknom, t.*
2
FROM tIntervenant i, TABLE(i.ltelephones) t
3
1
PKNOM COLUMN_VALUE
2
-------------------- ------------
3
Crozat 687990000
4
Crozat 912345678
5
Crozat 344231234
6
Vincent 344231235
7
Vincent 687990001
Exemple : Accès à une collection imbriquée d'enregistrement
Appuyer sur espace pour rester en pause.
1
SELECT i.pknom, s.*
2
FROM tIntervenant i, TABLE(i.lspecialites) s
1
PKNOM DOMAINE TECHNOLOGIE
2
-------------------- --------------- ---------------
3
Crozat BD SGBDR
4
Crozat Doc XML
5
Crozat BD SGBDRO
6
Vincent IC Ontologies
7
Vincent BD SGBDRO
Syntaxe : Accès aux colonnes d'une table imbriquée
Appuyer sur espace pour rester en pause.
1
SELECT t2.a, t2.b...
2
FROM t t1, TABLE(t1.col) t2;
Syntaxe : Accès à la colonne d'une table imbriquée de scalaires
Appuyer sur espace pour rester en pause.
1
SELECT t2.COLUMN_VALUE
2
FROM t t1, TABLE(t1.nt) t2;
Exemple :
Appuyer sur espace pour rester en pause.
1
SELECT i.pknom, t.COLUMN_VALUE, s.domaine
2
FROM tIntervenant i, TABLE(i.ltelephones) t, TABLE(i.lspecialites) s
1
PKNOM COLUMN_VALUE DOMAINE
2
-------------------- ------------ -----------
3
Crozat 687990000 BD
4
Crozat 687990000 Doc
5
Crozat 687990000 BD
6
Crozat 912345678 BD
7
Crozat 912345678 Doc
8
Crozat 912345678 BD
9
Crozat 344231234 BD
10
Crozat 344231234 Doc
11
Crozat 344231234 BD
12
Vincent 344231235 IC
13
Vincent 344231235 BD
14
Vincent 687990001 IC
15
Vincent 687990001 BD