ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【原创】创建DDL触发器捕捉schema所有对象改变的记录

【原创】创建DDL触发器捕捉schema所有对象改变的记录

原创 Linux操作系统 作者:leonarding 时间:2013-07-03 08:58:47 0 删除 编辑
创建记录表
drop table ddl_log_qiang purge;
create table ddl_log_qiang 
(
operation   varchar2(50),                  什么操作
obj_owner   varchar2(50),                  所属用户
object_name varchar2(50),                  操作对象
attempt_dt  date                           发生时间
);
select * from ddl_log_qiang;
SQL> select * from ddl_log_qiang;
OPERATION             OBJ_OWNER             OBJECT_NAME                          ATTEMPT_DT
-------------------------------------------------------------------------- -------------------------------------------------- -----------
DROP                  SINOJFS               TEST1                                2013-6-28 1
CREATE                SINOJFS               TEST1                                2013-6-28 1
ALTER                 SINOJFS               TEST1                                2013-6-28 1
ALTER                 SINOJFS               MV_SINO_PERSON                       2013-6-29 1
ALTER                 SINOJFS               MV_SINO_PERSON_ADDRESS               2013-6-29 1
ALTER                 SINOJFS               MV_SINO_PERSON_EMPLOYMENT            2013-6-29 1
ALTER                 SINOJFS               MV_SINO_PERSON_CERTIFICATION         2013-6-29 1
 

删除DDL触发器
drop trigger tib_ddl_qiang;
创建DDL触发器
create or replace trigger tib_ddl_qiang
before create or drop or alter             在这三个操作之前插入表记录
on schema
declare
oper ddl_log_qiang.operation%type; 
begin
insert into ddl_log_qiang select ora_sysevent,ora_dict_obj_owner,ora_dict_obj_name,sysdate from dual;
end;
/

注:触发器不能调用或者间接调用commit/rollback,触发器中的DML语句会与触发器一起作为一个整体事物,在触发器结束后会自动进行commit。

测试

drop table test1 purge;
create table test1 (x int,y int);
alter table test1 add (z  int); 
select * from ddl_log_qiang;


Leonarding

2013.07.03

北京&summer

分享技术~成就梦想

Blog:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26686207/viewspace-765360/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
刘盛,香港城市大学EMBA,现担任中国民生银行民生科技供应链金融事业部负责人,负责企业生态业务发展工作。 2016年8月12日刘盛受邀参加了由磐岩智慧在上海绿地万豪大酒店主办的“全球互联网金融创新论坛2016”,并作了“中国互联网金融信用体系建设与未来”主题演讲。

注册时间:2012-02-10

  • 博文量
    254
  • 访问量
    3355142