Consegui.

Obrigado a todos que me ajudaram e desculpe a incomodação

 

 

Boa noite,

 

Gostaria de contribuir com mais uma opção para solução do problema, se não
houver a necessidade de um tratamento mais específico, resolvo alguns casos
de recursividade com a seguinte função :

 

CREATE OR REPLACE FUNCTION recursividade(cod_pai  integer)  RETURNS SETOF
tabela AS

$BODY$DECLARE

                pai                                         RECORD;

                filho                                      RECORD;

BEGIN

                               FOR pai IN (SELECT * FROM tabela WHERE
cod_filho = $1) LOOP

                                               FOR filho IN (SELECT * FROM
recursividade(pai.cod_pai)) LOOP

                                                               RETURN NEXT
filho;

                                               END LOOP;

                                               RETURN NEXT pai;

                               END LOOP;

 

END $BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100

  ROWS 1000;

ALTER FUNCTION recursividade(integer) OWNER TO owner;

 

Para chamar a função : SELECT * FROM recursividade(0); 

 

Atc.

Adriano V. Araujo






 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a