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
