系統觸發器
可以用系統觸發器記錄一些ddl的數據操作或者是數據庫的登錄 或者登出操作。
語法:
create or replace trigger 觸發器名稱
before/after 觸發器時機
事件名稱 例如logon logoffff ddl
on
用戶的對象/數據庫 如果是用戶的對象 用戶名.schema /database
when 條件表達式
begin
語句塊;
end;
舉例:創建一個系統觸發器,記錄scott用戶的ddl操作
--創建用戶的歷史記錄操作表
create table ddl_event( --用戶的操作時間 create_date date, -- 用戶名 operate_user varchar2(100), -- 用戶的操
作 operate varchar2(50), --用戶操作對象的類型 obj_type varchar2(50), --用戶操作對象的名稱 obj_name
varchar2(50) );
創建觸發器:
create or replace trigger tri_ddl_scott after ddl on scott.schema begin --往用戶操作歷史表插入數據 --可以通過數據庫常量獲取要插入的數據 insert into ddl_event values(sysdate,ora_login_user,ora_sysevent,ora_dict_obj_type, ora_dict_obj_name ); end;