From: | Edwin Perez Lozano <edwinandperez(at)gmail(dot)com> |
---|---|
To: | mario vargas careaga <mario(dot)vargas(dot)careaga(at)gmail(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Jaime Casanova <systemguards(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: no puedo conseguir que me devuelva mas tuplas.... |
Date: | 2007-05-29 22:56:42 |
Message-ID: | 1180479403.3403.4.camel@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El mié, 30-05-2007 a las 00:12 +0200, mario vargas careaga escribió:
> lo corregi asi....
> CREATE OR REPLACE FUNCTION nue()
> RETURNS setof record AS
> $BODY$declare
> resultado record;
> begin
> for resultado in select * from ppagos
> loop
> return next resultado;
> end loop;
> return;
> end;
>
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
>
> la sintaxis del loop esta bien pero cuando ejecuto
> select nue()
>
> ERROR: set-valued function called in context that cannot accept a set
> Estado SQL:0A000
> Contexto:PL/pgSQL function "nue" line 5 at return next
>
> me sigue dando error ..
HOLA... ya Alvaro te dijo como tenias que ejecutar la funcion.. porque
no pones un poco mas de atencion y analizas sus respuestas..
llama la funcion de la siguiente manera:
SELECT * FROM nue();
ademas eso esta en la documentacion:
http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING
literal 37.7.1.2. RETURN NEXT
>
>
> El 29/05/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
> > mario vargas careaga escribió:
> > > estoy haciendo esto....
> > >
> > > CREATE OR REPLACE FUNCTION nue()
> > > RETURNS setof record AS
> > > $BODY$declare
> > > resultado record;
> > > begin
> > >
> > >
> > > select * into resultado from ppagos;
> > > return next resultado;
> > > end;
> > > $BODY$
> > > LANGUAGE 'plpgsql' VOLATILE;
> >
> > Esta mal. Debe ser asi
> >
> > declare
> > resultado record;
> >
> > begin
> > for resultado in select * from ppagos loop
> > return next resultado
> > end loop;
> > return;
> > end;
> >
> >
> > O similar. No lo probe, asi que si no funciona verifica la sintaxis
> > correcta en el manual. Pero la clave es que el RETURN NEXT debe ir
> > dentro de un FOR/LOOP.
> >
> > --
> > Alvaro Herrera http://www.PlanetPostgreSQL.org/
> > "La espina, desde que nace, ya pincha" (Proverbio africano)
> >
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>
> http://archives.postgresql.org/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Rodríguez Penabad | 2007-05-29 23:11:01 | Re: no puedo conseguir que me devuelva mas tuplas.... |
Previous Message | Guillermo Varona Silupú | 2007-05-29 22:38:10 | Re: sobre instalación de PL/Java |