Oracle入门(十四.23)之管理触发器
生活随笔
收集整理的這篇文章主要介紹了
Oracle入门(十四.23)之管理触发器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、觸發器需要特權
要在模式中創建觸發器,需要:?CREATE TRIGGER系統特權
?觸發器主體中引用的其他架構中的對象的普通對象特權(SELECT,UPDATE,EXECUTE等)
?與觸發器關聯的表或視圖上的ALTER特權。
觸發器主體中的語句使用觸發器所有者的特權,而不是執行觸發觸發器的操作的用戶的特權。 下面展示了一個例子。
二、觸發器所需的特權示例
用戶MOE需要創建以下觸發器:
CREATE OR REPLACE TRIGGER upd_tom_emp AFTER UPDATE ON tom.employees BEGININSERT INTO mary.log_table VALUES(USER,SYSDATE);sharon.calledproc; END;Moe需要:
? CREATE TRIGGER
? ALTER on TOM.EMPLOYEES
? INSERT on MARY.LOG_TABLE
? EXECUTE on SHARON.CALLEDPROC.
三、在數據字典中查看觸發器
可以在以下數據字典視圖中看到觸發器信息:
?USER_OBJECTS:對象名稱和對象類型(與架構中的所有其他對象類型一樣)?USER_TRIGGERS:觸發器的詳細代碼和狀態
?USER_ERRORS:觸發器的PL / SQL語法錯誤(編譯錯誤)
使用USER_TRIGGERS
*并非所有列都顯示在這里
四、使用USER_TRIGGERS查看觸發信息
此示例顯示了觸發事件,時間,觸發器類型,狀態以及RESTRICT_SALARY觸發器的詳細正文代碼:
SELECT trigger_name, trigger_type, triggering_event,table_name, status, trigger_bodyFROM USER_TRIGGERSWHERE trigger_name = 'RESTRICT_SALARY';改變觸發器的狀態
禁用或啟用數據庫觸發器:
ALTER TRIGGER trigger_name DISABLE | ENABLE;禁用或啟用表格的所有觸發器:
ALTER TABLE table_name DISABLE | ENABLE ALL TRIGGERS;重新編譯表的觸發器:
ALTER TRIGGER trigger_name COMPILE;五、刪除觸發器
要從數據庫中刪除觸發器,請使用DROP TRIGGER語句:
DROP TRIGGER trigger_name;例:DROP TRIGGER secure_emp;注意:刪除表格時,會刪除表格上的所有觸發器。
總結
以上是生活随笔為你收集整理的Oracle入门(十四.23)之管理触发器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乘联会:9 月国内二手车数量环比上涨,入
- 下一篇: 榜样什么意思 榜样的意思