--1、复制emp表为表emp1
drop table emp1;
create table emp1 as select * from emp;
--2、创建表old_emp1记录更改时前后工资
create table old_emp1(
empno number(4),
old_sal number(9,2),
new_sal number(9,2)
);
--3、创建触发器t_emp1
create or replace trigger t_emp1
before update of sal on emp1
referencing old as o new as n
for each row
BEGIN
insert into old_emp1 values(: o.empno, : o.sal, : n.sal);
end t_emp1;
/
--4、更改表emp1中的数据,并查看表old_emp1中数据
update emp1 set sal=900 where empno=7369;
select * from old_emp1;=======================================
执行如下结果:
=======================================
SCOTT@orcl> update emp1 set sal=900 where empno=7369;
update emp1 set sal=900 where empno=7369
       *
第 1 行出现错误:
ORA-04098: 触发器 'SCOTT.T_EMP1' 无效且未通过重新验证
SCOTT@orcl>