drop ddl_log_qiang purge;
create table ddl_log_qiang
operation varchar2(50), 什么操作
obj_owner varchar2(50), 所属用户
object_name varchar2(50), 操作对象
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
删除触发器
create or replace trigger tib_ddl_qiang
before create or drop or alter 在这三个操作之前插入表记录
oper ddl_log_qiang.operation%type;
insert into ddl_log_qiang select ora_sysevent,ora_dict_obj_owner,ora_dict_obj_name,sysdate from dual;
注:触发器不能调用或者间接调用commit/rollback,触发器中的DML语句会与触发器一起作为一个整体事物,在触发器结束后会自动进行 。
测试
create table test1 (x int,y int);
alter table test1 add (z int);
select * from ddl_log_qiang;
Leonarding
2013.07.03
北京&summer
分享~成就梦想
Blog :
www.leonarding.com