ola amigo agora entendi , segue abaixo sua solucao:
CREATE OR REPLACE FUNCTION public.dominio (
p_dominio text,
p_sequencia text
)
RETURNS TABLE (
codigo INTEGER,
descricao TEXT
) AS
$body$
DECLARE
rQtde RECORD;
vetDescricao TEXT[];
vetCodigo INTEGER[];
i INTEGER;
BEGIN
CREATE TEMP TABLE dominio(
codigo INTEGER,
descricao TEXT );
i:=1;
SELECT INTO vetDescricao string_to_array(p_dominio,',');
SELECT INTO vetCodigo string_to_array(p_sequencia,',');
FOR rQtde IN SELECT unnest(string_to_array(p_dominio,',')) as dominio
LOOP
INSERT INTO dominio(codigo,descricao)
VALUES(vetCodigo[i],vetDescricao[I]);
i:=i+1;
END LOOP;
RETURN query SELECT * FROM dominio;
DROP TABLE dominio;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;
PARA USAR:
SELECT * from dominio('UM,DOIS,TRES','1,2,3')
[image: Foto]
*LuMoraes*
*O mais completo para seu comércio.*
2016-08-30 17:17 GMT-03:00 Carlos Antônio Pereira <
[email protected]>:
>
> Ola boa tarde amigo
>
> Veja uma funcao exemplo:
>
> CREATE OR REPLACE FUNCTION teste(pSeuParaMetro)
> RETURNS TABLE(id_produto integer, codfor character varying, codbar
> character varying, descricao character varying, qtd_minima integer, estoque
> numeric, reposicao numeric, prateleira character varying) AS
> $BODY$
> BEGIN
> RETURN QUERY SELECT id_produto , codfor , codbar , descricao,
> qtd_minima , estoque , reposicao , prateleira FROM tabela WHERE
> campo=pSeuParaMetro;
> END;
> $BODY$
> LANGUAGE plpgsql VOLATILE
> COST 100
> ROWS 1000;
>
> veja se isto te ajuda.
>
>
>
> Obrigado pela dica.
> Mas a idéia é construir um record e retorná-lo a partir do parâmetro
> passado para a função, sem que tenha uma tabela relacionada ao retorno.
>
> Algo como:
>
> select dominio(‘Sim;Não’);
>
> Retorno:
> codigo descricao
> 1 Sim
> 2 Não
>
> select dominio(‘CPF;CNPJ’);
> codigo descricao
> 1 CPF
> 2 CNPJ
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral