Minha PL foi com quebra de linha errada no email anterior, segue 
"bonitinha" agora!


DROP TYPE IF EXISTS fnc.funcao2_retornotype_retorno CASCADE;
CREATE TYPE fnc.funcao2_retornotype_retorno AS (
     codigo    VARCHAR,
     descricao VARCHAR);

CREATE OR REPLACE FUNCTION fnc.funcao2_retornotype(pTipo INTEGER)
RETURNS SETOF fnc.funcao2_retornotype_retorno AS
$$
DECLARE
     rRetorno fnc.funcao2_retornotype_retorno;
BEGIN
     IF pTipo = 1 THEN
         RETURN QUERY (SELECT codigo,descricao FROM situacaonfe ORDER BY 
codigo LIMIT 10);
     ELSIF pTipo = 2 THEN
         FOR rRetorno IN SELECT codigo,descricao FROM situacaonfe ORDER 
BY codigo LIMIT 10
         LOOP
             RETURN NEXT rRetorno;
         END LOOP;
     ELSE
         RAISE EXCEPTION 'Escolha um tipo(1 ou 2)!';
     END IF;
     RETURN;
END;
$$
LANGUAGE plpgsql;


Chamada:

SELECT * FROM fnc.funcao2_retornotype(2);
--SELECT fnc.funcao2_retornotype(2);
--SELECT (fnc.funcao2_retornotype(2)).*;
--SELECT (fnc.funcao2_retornotype(2)).descricao;
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a