Re: no puedo conseguir que me devuelva mas tuplas....

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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