oracle利用触发器实现将ddl操作存入数据表中

先创建DDL数据库事件操作表:

create table ddl_event(
sys_time date primary key,
event_name varchar2(20),
user_name varchar2(20),
obj_type varchar2(20),
obj_name varchar2(20))

然后建立触发器(系统事件触发器):

create or replace trigger tr_ddl 
after ddl on schema
declare
        -- local...
begin
   insert into ddl_event values(sysdate,ora_sysevent,ora_login_user,ora_dict_obj_type,ora_dict_obj_name);
end

在oracle数据库中:

sysdate是date类型当前时间,systimestamp是timestamp类型的当前时间

ora_sysevent是系统事件,DDL事件,例如create,alter,drop这些操作

ora_login_user 是当前登录系统的用户

ora_dict_obj_type是操作的数据对象类型,例如表table,视图view,触发器trigger,存储过程procedure。

ora_dict_obj_name是操作数据对象的名称,例如表名,视图名,触发器名等等。

posted @ 2018-03-07 18:19  晴朗依旧  阅读(304)  评论(0编辑  收藏  举报