Следующий триггер был создан правильно, и он запускается перед инструкциями UPDATE и INSERT. Но он ничего не отображает, когда выдается команда DELETE stmt. Пожалуйста, помогите мне определить проблему здесь.
create or replace trigger tr_emp_saldiff
BEFORE INSERT OR UPDATE OR DELETE
ON emp
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
WHEN (new.emp_no > 0)
declare
sal_diff number;
begin
sal_diff := :new.salary - :old.salary;
dbms_output.put(' Old salary: ' || :old.salary);
dbms_output.put(' New salary: ' || :new.salary);
dbms_output.put_line(' Difference ' || sal_diff);
END;
/
UPDATE emp set salary = salary + 500 where dept_no = 10;
Output :
1 row(s) updated.
Old salary: 20500 New salary: 21000 Difference 500
INSERT INTO EMP VALUES(1000,'Alice',15000,'Fiona',30);
Output :
1 row(s) inserted.
Old salary: New salary: 20000 Difference
DELETE FROM emp where emp_name='Jane';
Output :
1 row(s) deleted.
Никакие значения не отображаются после оператора удаления.