--创建A_Ver_Control系统版本控制表 create table A_Ver_Control ( iAutoID VARCHAR2(40) not null, event VARCHAR2(20), user_name VARCHAR2(10), owner VARCHAR2(10), obj_name VARCHAR2(500), obj_ddl clob, obj_type VARCHAR2(10), constraint PK_A_Ver_Control primary key (iAutoID) ); --创建A_Ver_Control系统版本控制表字段描述 comment on table A_Ver_Control is '系统版本控制'; comment on column A_Ver_Control.event is '事件'; comment on column A_Ver_Control.user_name is '用户'; comment on column A_Ver_Control.owner is '所有者'; comment on column A_Ver_Control.obj_name is '对象名'; comment on column A_Ver_Control.obj_ddl is '对象ddl'; comment on column A_Ver_Control.obj_type is '对象类型'; --创建触发器,当新增A_Ver_Control表数据时,SYS_GUID()自动生成32位唯一键iAutoID create trigger TRI_A_VER_CONTROL_ID before insert on A_VER_CONTROL for each row begin select SYS_GUID() into :NEW.IAUTOID from DUAL; end; --创建触发器,对MP用户的SCHEMA进行监听,在修改数据库结构的时候,把DDL写入表中 create or replace trigger TR_DDL after DDL on MP.SCHEMA begin insert into A_VER_CONTROL (EVENT, USER_NAME, OWNER, OBJ_NAME, OBJ_TYPE, OBJ_DDL) select ORA_SYSEVENT, ORA_LOGIN_USER, ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_NAME, ORA_DICT_OBJ_TYPE, DBMS_METADATA.GET_DDL(ORA_DICT_OBJ_TYPE, ORA_DICT_OBJ_NAME) from DUAL; exception when others then null; end;
参考源:https://www.cnblogs.com/KevinMO/p/10287171.html