|
Bom dia, Para fazer retornar mais de uma linha você deve fazer com que sua function retorne um tipo especifico. Você deve fazer o seguinte. CREATE OR REPLACE FUNCTION "public"."fn_estoque_produto" (numeric, out numeric, out varchar, out numeric) RETURNS SETOF tb_estoque AS $body$ declare reg record; begin for reg in select c_estoque, d_estoque from tb_estoque loop RETURN NEXT reg; end loop; Return null; end; $body$ LANGUAGE 'plpgsql' No trecho RETURNS SETOF ..... você pode usar uma tabela, view ou criar um Type especifico para sua function ;) Você pode alterar o valor qq campo de que será retorna, para isso basta fazer reg.campo = valor Espero que consiga, qualquer duvida posta novamente Att Evandro saulo Mendes wrote: amigo rodrigo, agradeço a dica mas eu já tinha lido esse artigo(em português) mas, infelizmente, não consegui resolver. se alguém tiver algo, um pouco mais detalhado eu agradeço. ________________________________Date: Thu, 18 Jan 2007 20:52:45 -0200 From: [EMAIL PROTECTED] To: [email protected] Subject: Re: [PostgreSQL-Brasil] returnar mais de uma linha em function RTFM [1]. :) [1] http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING -- Rodrigo Hjort http://icewall.org/~hjort 2007/1/18, saulo Mendes <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >: Senhores, eu tenho a seguinte function --------------------------------------------------------------------------------------------------------------------------------------- CREATE OR REPLACE FUNCTION "public"."fn_estoque_produto" (numeric, out numeric, out varchar, out numeric) RETURNS "pg_catalog"."record" AS $body$ declare reg record; vn_c_produto ALIAS FOR $1; vn_c_estoque ALIAS FOR $2; vt_d_estoque ALIAS FOR $3; vr_saldo ALIAS FOR $4; begin for reg in select c_estoque, d_estoque from tb_estoque loop vt_d_estoque = reg.d_estoque; vn_c_estoque = reg.c_estoque; vr_saldo = (select fn_saldo_produto(vn_c_produto,reg.c_estoque)); end loop; end; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; -------------------------------------------------------------------------------------------------------------------------------------------------------------------- o problema é que essa função só me retorna uma linha e eu preciso, justamente, que a função me retorne todos os registros da tb_estoque. agradeço a quem puder me ajudar nessa função._________________________________________________________________ Busque em qualquer página da Web com alta proteção. Obtenha o Windows Live Toolbar GRATUITO ainda hoje! http://toolbar.live.com/ _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios |
_______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
