Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flaviotomazio

Função que retorne um select com parametros

Recommended Posts

sim, só criar uma function com parâmetros

 

function teste (p1 number, p2 varchar, p3 date)
is
v_id number
begin
select id into v_id from tabela 
where campo1 = p1
and campo2 = p2
and campo3 = p3;
return(v_id);
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um tipo que corresponda ao retorno desejado do seu select.

 

CREATE TYPE t_retorno (
   campo1 tipo,
   campo2 tipo,
   campoN tipo
);


-- Apenas postgres 8.3
CREATE FUNCTION teste(p1 number, p2 varchar, p3 date) RETURNS 
SETOF retorno
	AS $$
DECLARE
BEGIN
   return query
	  select campo1, campo2, campoN 
	  from tabela
		where campo1 = p1 and
		campo2 = p2 and
		campo3 = p3;
END;
$$
	LANGUAGE plpgsql;

-- Postgres < 8.3 (não existe return query)
CREATE FUNCTION teste(p1 number, p2 varchar, p3 date) RETURNS 
SETOF retorno
	AS $$
DECLARE
   v_retorno retorno;
BEGIN
  for v_retorno in
	  select campo1, campo2, campoN 
	  from tabela
		where campo1 = p1 and
		campo2 = p2 and
		campo3 = p3
   loop
		return next v_retorno;
   end loop;
   return;
END;
$$
	LANGUAGE plpgsql;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.