手机
当前位置:查字典教程网 >编程开发 >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之查询某个表上的触发器

oracle闪回表详解

oracle查询重复数据和删除重复记录示例分享

oracle 存储过程和函数例子

Oracle 创建监控账户 提高工作效率

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

oracle自动维护

oracle 声明游标(不具备字段)规则应用

Oracle三种表连接技术

精品推荐
分类导航