業(yè)務(wù)表:數(shù)據(jù)庫(kù)DDL語(yǔ)句記錄
create table SYS.DB_DDL_RECORD(
OPERATETIME timestamp(6)
,IP_ADDRESS varchar2(30 byte)
,HOSTNAME varchar2(30 byte)
,MODULE varchar2(30 byte)
,OPERATION varchar2(30 byte)
,OBJECT_TYPE varchar2(30 byte)
,OBJECT_NAME varchar2(61 byte)
,SQL_STMT clob
,DB_SCHEMA varchar2(30 byte)
,UUID varchar2(32 byte)default SYS_GUID() not null enable
,constraint DB_DDL_RECORD_PK primary key(UUID) using index
);
comment on column SYS.DB_DDL_RECORD.OPERATETIME is '操作時(shí)間';
comment on column SYS.DB_DDL_RECORD.IP_ADDRESS is 'ip地址';
comment on column SYS.DB_DDL_RECORD.HOSTNAME is '連接電腦機(jī)器名';
comment on column SYS.DB_DDL_RECORD.MODULE is '連接使用Application';
comment on column SYS.DB_DDL_RECORD.OPERATION is '操作類(lèi)型';
comment on column SYS.DB_DDL_RECORD.OBJECT_TYPE is '數(shù)據(jù)庫(kù)對(duì)象類(lèi)型';
comment on column SYS.DB_DDL_RECORD.OBJECT_NAME is '數(shù)據(jù)庫(kù)對(duì)象名稱(chēng)';
comment on column SYS.DB_DDL_RECORD.SQL_STMT is 'sql語(yǔ)句體';
comment on column SYS.DB_DDL_RECORD.DB_SCHEMA is '連接的schema';
comment on table SYS.DB_DDL_RECORD is '數(shù)據(jù)庫(kù)DDL語(yǔ)句記錄,有問(wèn)題請(qǐng)聯(lián)系Kindey.S,微信kindey123;
通過(guò)觸發(fā)器實(shí)現(xiàn)記錄
create or replace trigger DDL_RECORD
after ddl on database
/*
authro:Kindey.S
date:2018-07-23
version:1.0.0.0
describe:create
date:2018-07-23
version:1.0.1.0
describe:修復(fù)hostname取值錯(cuò)誤問(wèn)題
remark:recording for DDL operating.
*/
declare
pragma AUTONOMOUS_TRANSACTION;--開(kāi)啟自治事務(wù)
PART number;--長(zhǎng)語(yǔ)句分段數(shù)量
STMT clob := null;--轉(zhuǎn)換后的語(yǔ)句
SQL_TEXT ORA_NAME_LIST_T;--原始語(yǔ)句
begin
--長(zhǎng)語(yǔ)句轉(zhuǎn)換
PART := ORA_SQL_TXT(SQL_TEXT);
for i in 1 .. PART loop
STMT := STMT || SQL_TEXT(i);
end loop;
--插入記錄
insert into DB_DDL_RECORD
(OPERATETIME, IP_ADDRESS, HOSTNAME, MODULE, OPERATION, OBJECT_TYPE, OBJECT_NAME, SQL_STMT,DB_SCHEMA)
values
(SYSTIMESTAMP,
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'MODULE'),
ORA_SYSEVENT,
ORA_DICT_OBJ_TYPE,
ORA_DICT_OBJ_NAME,
replace(STMT,CHR(0),''),
user
);
commit;
end;
/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。