From: | "mario vargas careaga" <mario(dot)vargas(dot)careaga(at)gmail(dot)com> |
---|---|
To: | "Ricardo Martin Gomez" <rimartingomez(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: mi cursor no encuentra fin de archivo... |
Date: | 2007-06-01 13:47:54 |
Message-ID: | 5cdf74c90706010647j4b0b0f7x9b6c6689cefce828@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
gracias voy a probar el codigo :)
El 1/06/07, Ricardo Martin Gomez <rimartingomez(at)hotmail(dot)com> escribió:
> > Date: Thu, 31 May 2007 22:22:04 +0200
> > From: mario(dot)vargas(dot)careaga(at)gmail(dot)com
> > To: pgsql-es-ayuda(at)postgresql(dot)org
> > Subject: [pgsql-es-ayuda] mi cursor no encuentra fin de archivo...
> >
> > CREATE OR REPLACE FUNCTION pasocursor(CPRE CHAR(37),out valor1 int,out
> > valor2 int,out valor3 int)
> > AS $$
> > declare
> > paso CURSOR FOR
> > SELECT ene,sueldo1,aporte1,
> >
> feb,sueldo2,aporte2,mar,sueldo3,aporte3,organo,distrito1,relridu,cod_per,ci1
> > FROM paso2006 begin;
> > ene int;
> > sueldo1 double precision;
> > aporte1 double precision;
> > feb int;
> > sueldo2 double precision;
> > aporte2 double precision;
> > mar int;
> > sueldo3 double precision;
> > aporte3 double precision;
> > organo int;
> > relridu int;
> > distrito1 int;
> > cod_per int;
> > ci1 char(25);
> > estadopaso int;
> > begin
> > open paso;
> > FETCH paso INTO ene,sueldo1,aporte1,
> >
> feb,sueldo2,aporte2,mar,sueldo3,aporte3,organo,distrito1,relridu,cod_per,ci1;
> >
> > WHILE (found) loop
> > BEGIN
> > insert into prestaciones values
> >
> (ci1,1,2006,sueldo1,ene,aporte1,cod_per,1,organo,distrito1,relridu);
> > insert into prestaciones values
> >
> (ci1,2,2006,sueldo2,feb,aporte2,cod_per,1,organo,distrito1,relridu);
> > insert into prestaciones values
> >
> (ci1,3,2006,sueldo3,mar,aporte3,cod_per,1,organo,distrito1,relridu);
> > FETCH paso INTO ene,sueldo1,aporte1,
> >
> feb,sueldo2,aporte2,mar,sueldo3,aporte3,organo,distrito1,relridu,cod_per,ci1;
> > END;
> > end loop;
> > close paso;
> > end;
> > $$ LANGUAGE 'plpgsql' VOLATILE;
>
> el Problema que tienes aqui amigo es exactamente con el while, found en tu
> caso siempre vale true y es por eso el ciclo infinito.
> aca te paso como resolvi mi problema con los cursores
>
>
> OPEN cursorcito ;
> LOOP
> FETCH cursorcito INTO registro;
> EXIT WHEN NOT FOUND;
> contador := contador + 1;
> END LOOP;
>
> >
> > como ya les escribi esta mi funcion no termina entra en un cilo
> > infinito asumo que ees el por el while (found) y cuando tengo cursores
> > anidados pasa lo mismo como lo puedo controlar?
> >
> > ---------------------------(fin del
> mensaje)---------------------------
> > TIP 7: no olvides aumentar la configuración del "free space map"
>
>
> ________________________________
> Llama a tus amigos de PC a PC: ¡Es GRATIS! Pruébalo
From | Date | Subject | |
---|---|---|---|
Next Message | mario vargas careaga | 2007-06-01 13:53:36 | ayuda con tabla temporal |
Previous Message | Ricardo Martin Gomez | 2007-06-01 13:02:56 | RE: mi cursor no encuentra fin de archivo... |