ORACLE DDL觸發器
create or replace trigger tr_ddl
before ddl on database
declare
l_errmsg varchar2(100) := '你無權修改,專案組!!!';
begin
if (Ora_dict_obj_type = 'TABLE' or Ora_dict_obj_type='INDEX') AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
if (Ora_dict_obj_type = 'TRIGGER' ) AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP' or Ora_sysevent = 'CREATE') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
exception
when no_data_found then
null;
end;
before ddl on database
declare
l_errmsg varchar2(100) := '你無權修改,專案組!!!';
begin
if (Ora_dict_obj_type = 'TABLE' or Ora_dict_obj_type='INDEX') AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
if (Ora_dict_obj_type = 'TRIGGER' ) AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP' or Ora_sysevent = 'CREATE') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
exception
when no_data_found then
null;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-734975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OGG DDL觸發器引發的故障系列(一)觸發器
- Oracle開發基礎-觸發器Oracle觸發器
- 禁止oracle表的觸發器triggerOracle觸發器
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- D觸發器觸發器
- mysql觸發器MySql觸發器
- oracle檢視物件DDL語句Oracle物件
- MySql-觸發器MySql觸發器
- sqlserver 列觸發器SQLServer觸發器
- 除錯觸發器除錯觸發器
- 建立MySQL觸發器MySql觸發器
- SqlServer-觸發器SQLServer觸發器
- logon觸發器for dbaGo觸發器
- MySQL使用觸發器MySql觸發器
- 語句觸發器觸發器
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- 行為和觸發器觸發器
- MySQL觸發器介紹MySql觸發器
- sql-server觸發器SQLServer觸發器
- 觸發器 REFERENCING OLD AS OLD觸發器
- Oracle12C新特性_DDL日誌Oracle
- 搜尋Oracle DDL中的關鍵字Oracle
- Oracle vs PostgreSQL,研發注意事項(2)-DDL語句與事務OracleSQL
- mvvm模式 事件觸發器[wpf]MVVM模式事件觸發器
- MySQL入門-- TRIGGER(觸發器)MySql觸發器
- SQL Server:觸發器詳解SQLServer觸發器
- SQL Server 觸發器詳情HOPPSQLServer觸發器
- MSMQ 觸發器 安裝失敗MQ觸發器
- MySQL觸發器的使用規則MySql觸發器
- SqlServer觸發器的建立與使用SQLServer觸發器
- SQL觸發器例項講解SQL觸發器
- Oracle 自動備份觸發ORA-01513問題Oracle
- 暫存器,觸發器,三極體小結觸發器
- Oracle中獲取TABLE的DDL語句的方法Oracle
- Oracle 19c 利用觸發器在資料庫啟動後自動開啟 PDBOracle觸發器資料庫
- 雲開發 CloudBase 已上線觸發器能力Cloud觸發器
- 25. 使用MySQL之使用觸發器MySql觸發器
- 資料庫檢視,索引,觸發器資料庫索引觸發器
- 資料庫的觸發器的使用資料庫觸發器