Bucle q no lo es
Publicado por Sergio (48 intervenciones) el 07/04/2003 10:52:40
Una pregunta sencillita, tengo el siguiente bucle con la condición de salida en el EXIT-WHEN. La condición de salida no se cumple pero el bucle solamente lo hace una vez. A continuación os pongo el bucle, a ver si veis lo q hago mal.
AUX_FECHA := :AUS.F_INI;
LOOP
DECLARE
CURSOR C1 IS
SELECT HORAS
FROM JOR_TRAB
WHERE X_TRAB = PKG_GLO.X_TRAB
AND FECHA = AUX_FECHA;
BEGIN
OPEN C1;
FETCH C1 INTO AUX_HORAS;
AUX_NOFOUND := C1%NOTFOUND;
IF (AUX_HORAS > 0) THEN
UPDATE JOR_TRAB SET HORAS = 0
WHERE X_TRAB = PKG_GLO.X_TRAB AND FECHA = AUX_FECHA;
AUX_FECHA := AUX_FECHA + 1;
ELSE
AUX_FECHA := AUX_FECHA + 1;
END IF;
IF AUX_NOFOUND THEN
AUX_FECHA := AUX_FECHA + 1;
END IF;
END;
EXIT WHEN AUX_FECHA > :AUS.F_FIN;
END LOOP;
Muchisimas gracias.
AUX_FECHA := :AUS.F_INI;
LOOP
DECLARE
CURSOR C1 IS
SELECT HORAS
FROM JOR_TRAB
WHERE X_TRAB = PKG_GLO.X_TRAB
AND FECHA = AUX_FECHA;
BEGIN
OPEN C1;
FETCH C1 INTO AUX_HORAS;
AUX_NOFOUND := C1%NOTFOUND;
IF (AUX_HORAS > 0) THEN
UPDATE JOR_TRAB SET HORAS = 0
WHERE X_TRAB = PKG_GLO.X_TRAB AND FECHA = AUX_FECHA;
AUX_FECHA := AUX_FECHA + 1;
ELSE
AUX_FECHA := AUX_FECHA + 1;
END IF;
IF AUX_NOFOUND THEN
AUX_FECHA := AUX_FECHA + 1;
END IF;
END;
EXIT WHEN AUX_FECHA > :AUS.F_FIN;
END LOOP;
Muchisimas gracias.
Valora esta pregunta
0