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 <
carlosanto...@utivida.com.br>:

>
> 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
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a