Utilisation d'une fonction recursive dans une fonction
Bonjour à toutes et à tous,
Je cherche à utiliser une fonction recursive qui fonctionne correctement lorsque je fais un simple select, mais pas quand je l'insère dans un bloc de fonction.
La fonction est powerset trouvé sur : https://www.postgresql.org/message-i...innie.fuhr.org
Code:
1 2
|
SELECT * FROM powerset2(ARRAY['A','B','C']); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
...
DECLARE
v_test2 text[];
tab_couple varchar[] := ARRAY['A','B','C'];
BEGIN
FOR v_test2
IN
SELECT * FROM "powerset2"(tab_couple)
LOOP
RAISE NOTICE '%:TEST : %', i,v_test2[i];
i := i + 1;
END LOOP;
END; |
Cela fonctionne très bien en SELECT standard, mais lors de l'intégration dans un bloc pgSQL cela ne fonctionne plus : je n'arrive pas à avoir l'ensemble des résultats, j'ai juste :
Code:
1 2 3 4 5 6 7 8
|
NOTICE: 1:TEST : A
NOTICE: 2:TEST : <NULL>
NOTICE: 3:TEST : <NULL>
NOTICE: 4:TEST : <NULL>
NOTICE: 5:TEST : <NULL>
NOTICE: 6:TEST : <NULL>
NOTICE: 7:TEST : <NULL> |
Au lieu de :
Code:
1 2 3 4 5 6 7 8
|
"{A}"
"{B}"
"{A,B}"
"{C}"
"{A,C}"
"{B,C}"
"{A,B,C}" |
Je demande donc votre aide, car je suis sec sur le sujet... ! J'ai l'impression qu'il y a un problème de déclaration de variable et d'affectation... !
Merci d'avance ...