手机
当前位置:查字典教程网 >编程开发 >Oracle教程 >oracle监控某表变动触发器例子(监控增,删,改)
oracle监控某表变动触发器例子(监控增,删,改)
摘要:使用oracle触发器实现对某个表的增改删的监控操作,并记录到另一个表中。代码:复制代码代码如下:createorreplacetrigge...

使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中。

代码:

复制代码 代码如下:

create or replace trigger test_trigger

before insert or update or delete on test_table

for each row

declare

v_id varchar2(30);

v_bdlb varchar2(1);

v_jgdm VARCHAR2(12);

v_jgmc VARCHAR2(60);

v_gajgmc VARCHAR2(60);

v_gajgwsmc VARCHAR2(30);

v_jz VARCHAR2(30);

v_ksdwsdwmc VARCHAR2(30);

begin

/*

插入时往历史表中存放的是新插入的数据.

修改时往历史表中存放的是修改后的数据.

删除时往历史表中存放的是删除之前的数据.

*/

select org_id_s.nextval into v_id from dual; -- 利用seq生成主键

v_jgdm := :new.row_id;

v_jgmc := :new.dept_name;

v_gajgmc := :new.dept_name;

v_gajgwsmc := :new.bmjc;

v_jz := substr(v_jgdm, 7, 2);

if '2' = :new.depttype then

v_ksdwsdwmc := 'shiju';

else

if '03' = v_jz then

v_ksdwsdwmc := 'zhi';

elsif '05' = v_jz then

v_ksdwsdwmc := 'xing';

elsif '51' = v_jz then

v_ksdwsdwmc := 'she';

else

v_ksdwsdwmc := 'qita';

end if;

end if;

if inserting then

v_bdlb := '1';

insert into test_table_h

(id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)

values

(v_id,

v_bdlb,

v_jgdm,

v_jgmc,

v_gajgmc,

v_gajgwsmc,

v_jz,

v_ksdwsdwmc);

elsif updating then

v_bdlb := '2';

insert into test_table_h

(id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)

values

(v_id,

v_bdlb,

v_jgdm,

v_jgmc,

v_gajgmc,

v_gajgwsmc,

v_jz,

v_ksdwsdwmc);

else

v_bdlb := '3';

v_jgdm := :old.row_id;

v_jgmc := :old.dept_name;

v_gajgmc := :old.dept_name;

v_gajgwsmc := :old.bmjc;

v_jz := substr(v_jgdm, 7, 2);

if '2' = :old.depttype then

v_ksdwsdwmc := 'shiju';

else

if '03' = v_jz then

v_ksdwsdwmc := 'zhi';

elsif '05' = v_jz then

v_ksdwsdwmc := 'xing';

elsif '51' = v_jz then

v_ksdwsdwmc := 'she';

else

v_ksdwsdwmc := 'qita';

end if;

end if;

insert into test_table_h

(id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)

values

(v_id,

v_bdlb,

v_jgdm,

v_jgmc,

v_gajgmc,

v_gajgwsmc,

v_jz,

v_ksdwsdwmc);

end if;

end;

【oracle监控某表变动触发器例子(监控增,删,改)】相关文章:

oracle 触发器 学习笔记

oracle下加密存储过程的方法

window中oracle环境变量设置方法分享

Oracle SID存在解決方法

Oracle触发器简单实现

oracle物化视图同步两个数据库间的数据

oracle触发器如何使用

oracle 存储过程和触发器复制数据

Oracle查看和修改连接数(进程/会话/并发等等)

oracle清空所有表数据

精品推荐
分类导航