bueno una solucion seria de controlar independientemente cada while, me explico una variable de control o semaforo para cada while.
while (semaforo1) loop
semaforo2=found;
while (semaforo2)loop
end loop;
while
end loop
From: "mario vargas careaga" <mario.vargas.careaga@gmail.com>
To: pgsql-es-ayuda <pgsql-es-ayuda@postgresql.org>
Subject: [pgsql-es-ayuda] problemas con el WHILE (found) loop
Date: Wed, 30 May 2007 18:21:22 +0200
>mi cursor es este
>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 (1,ci1,2006,sueldo1,ene,aporte1,
>cod_per,1,organo,distrito1,relridu);
> insert into prestaciones values (2,ci1,2006,sueldo2,feb,aporte2,
>cod_per,1,organo,distrito1,relridu);
> insert into prestaciones values (3,ci1,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;
>
>bueno lo que pasa es q entra en un ciclo infinito nunca termina de
>ejecutar mi funcion lo que mas o menos vi es un problema en el WHILE
>(found) loop
>leir por ahi que el found se tiene que igualar a otra variable algo
>asi
>open paso;
>FETCH paso into ene,sueldo1,aporte1,
>feb,sueldo2,aporte2,mar,sueldo3,aporte3,organo,distrito1,relridu,cod_per,ci1;
>estado=found
>WHILE (estado) loop
>BEGIN
> insert into prestaciones values (1,ci1,2006,sueldo1,ene,aporte1,
>cod_per,1,organo,distrito1,relridu);
> insert into prestaciones values (2,ci1,2006,sueldo2,feb,aporte2,
>cod_per,1,organo,distrito1,relridu);
> insert into prestaciones values (3,ci1,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;
>y despues del fetch terminar la variable no se como hacerlo
>porque tienen problemas si son while found anidados
>gracias de antemano...
>
>---------------------------(fin del
>mensaje)---------------------------
>TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>
> http://archives.postgresql.org/pgsql-es-ayuda