Função no Postgre
21/12/2010
0
Prezados, preciso criar uma função simples, que recebe um parametro. Nele deve ter um SELECT que retorna varios dados, dai durante a leitura desses dados retorne numa cariavel as informações separadas por virgula.
Ex:
Tabela
id nome
1 uva
2 pera
3 maça
Resultado ao chamar a função
uva, pera, maça
Tentei fazer uma como abaixo, porem dá erro dizendo que não existe o public.f_teste. Essa função peguei da Net não sei se está correto. Alguem saberia como fazer?
CREATE OR REPLACE FUNCTION public.f_teste(p_id integer, p_uf character varying)
RETURNS SETOF public.f_teste AS
$BODY$
DECLARE
var_row public.f_teste%ROWTYPE;
var_record RECORD;
var_strSQL VARCHAR;
BEGIN var_strSQL := 'select nome from juelemento LEFT JOIN jupessoa ON (jupessoa.id_jupessoa = juelemento.id_jupessoa) where id_juprocesso = 70643';
FOR var_record IN
EXECUTE var_strSQL
LOOP
var_row.nome := var_record.nome;
RETURN NEXT var_row;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'SQL' VOLATILE SECURITY DEFINER;
CREATE OR REPLACE FUNCTION public.f_teste(p_id integer, p_uf character varying)
RETURNS SETOF public.f_teste AS
$BODY$
DECLARE
var_row public.f_teste%ROWTYPE;
var_record RECORD;
var_strSQL VARCHAR;
BEGIN var_strSQL := 'select nome from juelemento LEFT JOIN jupessoa ON (jupessoa.id_jupessoa = juelemento.id_jupessoa) where id_juprocesso = 70643';
FOR var_record IN
EXECUTE var_strSQL
LOOP
var_row.nome := var_record.nome;
RETURN NEXT var_row;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'SQL' VOLATILE SECURITY DEFINER;
Fabiano Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)