hola, al devolver un record se debe indicar tmb los campos exactos q recibiran el record.. la otra forma es q tu definas un tipo record con los campos que necesitas y lo uses. La otra forma es que uses un cursor y lo retornes.

Slds

----- Original Message ----- From: "Hector R. De los Santos (Consultor TI)" <[email protected]>
To: <[email protected]>; <[email protected]>
Sent: Friday, May 15, 2009 2:32 PM
Subject: [pgsql-es-ayuda] Setof function problemas...


Creo que esto se ha respondido varias veces en la lista, el problema
esta en el modo de invocar la funcion, debe ser:

Select * from sch_desarrollo.reg_paises()



El día 15 de mayo de 2009 15:04, Luis A. Zevallos Cárdenas
<[email protected]> escribió:
Hola a todos

Una consulta que no entiendo porque me da este error cuando hago una
function utilizando setof

CREATE OR REPLACE FUNCTION sch_desarrollo.reg_paises() RETURNS SETOF
sch_desarrollo.tbl_paises_tmp AS
$BODY$
DECLARE
reg RECORD;
BEGIN
for reg in SELECT * FROM sch_desarrollo.tbl_paises_tmp loop
return next reg;
end loop;
return;
END;
$BODY$
LANGUAGE 'plpgsql';

Esto crea la function normal sin errores

Pero cuando la ejecuto

select sch_desarrollo.reg_paises()

Da este error;

************************ERROR****************************
ERROR: se llamó una función que retorna un conjunto en un contexto que no
puede aceptarlo
CONTEXT: PL/pgSQL function "reg_paises" line 5 at RETURN NEXT

********** Error **********

ERROR: se llamó una función que retorna un conjunto en un contexto que no
puede aceptarlo
Estado SQL:0A000
Contexto:PL/pgSQL function "reg_paises" line 5 at RETURN NEXT

*********************************************************

Gracias si es que me pueden ayudar

--
Luis Zevallos
DBA Administrador de DB & SRVR
Lobo Sistemas S.A.C
tel: +5154958310833
http://www.lobosistemas.com




--
:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux



--
:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a