Sélection dans les collections imbriquées

SyntaxeAccès aux tables imbriquées

Soit col un attribut de la table t contenant une collection imbriquée.

Appuyer sur espace pour rester en pause.
1
SELECT t2.* 
2
FROM t t1, TABLE(t1.col) t2;

AttentionJointure 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.

ExempleAccè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 

ExempleAccè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      

SyntaxeAccè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;

SyntaxeAccè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