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
Pensei nisto:
CREATE TYPE type_dominio AS (
codigo INT,
descricao VARCHAR
);
CREATE FUNCTION dominio(varchar) RETURNS SETOF type_dominio AS $$
DECLARE
dados_dominio type_dominio;
BEGIN
FOR ... LOOP
...;
END LOOP;
RETURN;
END;
$$ LANGUAGE 'plpgsql'
SELECT * FROM dominio(‘Sim;Não’);
Não sei o que fazer dentro do loop...
Talvez se passar um array como parametro...
--------------------------------------------------------------------------------
_______________________________________________
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