--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>
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>
解决方案 »
- oracle中的分组查询问题
- oracle 行固定,列变动,行求和问题
- sqf%rowcount 到底可以使用几次,如下边的格式,oracle 知道是哪个sql%rowcount 吗 请高手指点
- 请教:Ado的 _Connection的Open(connectionString,userId,Pwd,Option)中的参数应如何配置??
- 百分求助:oracle 字符函数在procedure中出PLS-00103错
- oracle 9i在哪里下载?
- 各位大侠帮忙看我的oracle语句有什么问题,谢谢!急!等待ing.....
- ORA-03113 end-of-file on communication channel
- 要SQL的查询结果集中的数据按照继承关系排序该怎么写。
- ORA-01555 snapshot too old,这样的问题如何解决?再线等待!
- ORACLE 行列转换问题
- 关于oracle中的conn命令
http://zhidao.baidu.com/question/260750216.html?quesup1
--都是空格惹的祸,细节决定成败
SQL> create or replace trigger t_emp1
2 before update of sal on emp1
3 referencing old as o new as n
4 for each row
5 BEGIN
6 insert into old_emp1 values(:o.empno, :o.sal, :n.sal);
7 end t_emp1;
8 /