Fonction recursive plante session
	
	
		Bonjour
j'ai une table HD_MAT comme suit
CDMAT CDMATR
1         10
2         10
3         10
4         10
10       20
11       20
12       20
13       20
J'ai la fonction recusive suivante
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | CREATE OR REPLACE FUNCTION TEST(p_cdmatr IN VARCHAR2) return number IS
    TYPE TABLE_CDMAT IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
    var_tab_cdmat TABLE_CDMAT;
    retour number;
  BEGIN
    SELECT CDMAT
    BULK COLLECT 
    INTO var_tab_cdmat
    FROM HD_MAT
    WHERE CDMATR=p_cdmatr;
 
    IF var_tab_cdmat.COUNT>0 THEN
      FOR iCnt IN var_tab_cdmat.FIRST..var_tab_cdmat.LAST LOOP
        dbms_output.put_line('LIGNE '||var_tab_cdmat(iCnt));
        retour :=TEST(var_tab_cdmat(iCnt));
      END LOOP;
    END IF;
    return 1;
  END;
/ | 
 je l'appel comme suit
	Code:
	
1 2 3 4 5 6 7
   | declare
retour number;
begin
retour:=test('20');
dbms_output.put_line('FIN');
end;
/ | 
 normalement il devrait m'afficher
10
1
2
3
4
11
12
13
mais il affiche
10
10
10
10
10
10
10
10
10
...
...
à l'infini
quelqu'un peut m'aider
cordialement