我是靠谱客的博主 谦让战斗机,最近开发中收集的这篇文章主要介绍oracle触发器 删除出发,oracle监控某表变动触发器例子(监控增,删,改),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用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触发器 删除出发,oracle监控某表变动触发器例子(监控增,删,改)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部