Bonjour à tous,

Je sollicite votre aide car je ne trouve l'information nulle part....

En PL/SQL, je souhaite réaliser des curseurs imbriqués mais mon problème se situe au niveau du fetch.

Tout d'abord je déclare mon curseur - jusque là pas de soucis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
TYPE cur_type_test IS REF CURSOR;
cur_test cur_type_test;
 
CURSOR C1 IS
    SELECT t1.champs1,...,t1.champsN, CURSOR (
                  SELECT t2.champs1,...,t2.champsN, CURSOR (
                                                          SELECT t3.champs1,...,t3.champsN FROM t3 WHERE t3.clé = t2.clé)
                 FROM t2.clé = t1.clé)
FROM t1;
Ces déclarations étant réalisées, ensuite je rentre dans le corps :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
BEGIN
OPEN c1;
LOOP
 FETCH c1 INTO v_t1chamsp1,..,v_t1chamspN, cur_test
 EXIT WHEN c1%notfound;
    LOOP
    FETCH cur_test INTO v_t2chamsp1,..,v_t2chamspN, -- ! Ici est mon problème !
    EXIT WHEN cur_test%notfound;
       LOOP
        FETCH ??? INTO v_t3chamsp1,..,v_t3chamspN,
        EXIT WHEN ??%notfound;
Je sais le faire marcher pour deux niveaux par contre je n'arrive pas à le faire fonctionner pour plus...

Est-ce que cela est possible ?

Merci pour votre aide.