RE: mi cursor no encuentra fin de archivo...

From: Ricardo Martin Gomez <rimartingomez(at)hotmail(dot)com>
To: mario vargas careaga <mario(dot)vargas(dot)careaga(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: mi cursor no encuentra fin de archivo...
Date: 2007-06-01 13:02:56
Message-ID: BAY111-W1C849483C53D97074D83BA32C0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> 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!
http://get.live.com/messenger/overview

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message mario vargas careaga 2007-06-01 13:47:54 Re: mi cursor no encuentra fin de archivo...
Previous Message Alvaro Herrera 2007-06-01 12:59:40 Re: mi cursor no encuentra fin de archivo...