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

Responder a