Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/06/2016, 07:51
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Trigger Oracle se crea pero no Actualiza

Efectivamente, no es posible hacer este tipo de operaciones sobre un trigger que afecta directamente la misma tabla.
A esto, se le conoce como tablas mutantes. Sin embargo, para lograr tu objetivo, pudes jugar un poco con las variables OLD y NEW.

Prueba este treigger:
Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER TR_CALCULARMORA
  2. BEFORE UPDATE
  3. ON Prestamo
  4. FOR EACH ROW
  5. DECLARE
  6.   dias INTEGER;
  7. BEGIN
  8.   DIAS := TRUNC(SYSDATE) - :OLD.FECHADEV;
  9.   IF dias > 3 THEN
  10.     :NEW.MORA:=(DIAS-3)*5;
  11.     :NEW.FECHAREALDEV:=SYSDATE;        
  12.   END IF;
  13. END;
  14. /


De esta forma, no se realizan operaciones sobre la tabla, solo se aprovechan los valores actuales reales de la tabla.

Nos cuentas
__________________
Without data, You are another person with an opinion.
W. Edwads Deming