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