Ola amigo, me de um feedback, deu certo a funcao que eu enviei???
[image: Foto] *LuMoraes* *O mais completo para seu comércio.* Em 30 de agosto de 2016 17:41, lu moraes santos <djrlumor...@gmail.com> escreveu: > 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