Update con cursores
Publicado por TUTE (48 intervenciones) el 28/04/2003 13:12:20
Hola a todos. Mi duda es la siguiente. Tengo un update con decodes anidados que hacen referencia dentro a un cursor, q no me da error al compilar, pero lo que es actualizar actualiza mas bien poco.
Os pongo el código a ver si me dais alguna pista de xq no está funcionando la actualización:
DECLARE CURSOR C2 IS
SELECT X_MOTAUS, F_INI, F_FIN, HORAS
FROM AUSENCIAS
WHERE X_TRAB =104
BEGIN
FOR CA IN C2 LOOP
IF(CA.X_MOTAUS = 13) THEN
UPDATE JOR_TRAB SET
HORAS_AUS = DECODE (CA.HORAS,
NULL, HORAS, (DECODE (HORAS_AUS,
NULL,
CA.HORAS, HORAS_AUS+CA.HORAS))),
HORAS_COMP = DECODE (CA.HORAS,
NULL, 0, (DECODE (HORAS_COMP, NULL, HORAS-CA.HORAS, HORAS_COMP-CA.HORAS)))
WHERE X_TRAB = 104;
END IF;
END LOOP;
END;
No se si me habré rayao mucho con el update. A ver si me echais una manilla que mi procedimiento es muy grande y si esto me funcionara lo tendría todo controlado del tirón. Muchisimas gracias a todos por leer esto, q tiene q ser un "(·/")/(/)"·7().
Os pongo el código a ver si me dais alguna pista de xq no está funcionando la actualización:
DECLARE CURSOR C2 IS
SELECT X_MOTAUS, F_INI, F_FIN, HORAS
FROM AUSENCIAS
WHERE X_TRAB =104
BEGIN
FOR CA IN C2 LOOP
IF(CA.X_MOTAUS = 13) THEN
UPDATE JOR_TRAB SET
HORAS_AUS = DECODE (CA.HORAS,
NULL, HORAS, (DECODE (HORAS_AUS,
NULL,
CA.HORAS, HORAS_AUS+CA.HORAS))),
HORAS_COMP = DECODE (CA.HORAS,
NULL, 0, (DECODE (HORAS_COMP, NULL, HORAS-CA.HORAS, HORAS_COMP-CA.HORAS)))
WHERE X_TRAB = 104;
END IF;
END LOOP;
END;
No se si me habré rayao mucho con el update. A ver si me echais una manilla que mi procedimiento es muy grande y si esto me funcionara lo tendría todo controlado del tirón. Muchisimas gracias a todos por leer esto, q tiene q ser un "(·/")/(/)"·7().
Valora esta pregunta


0