我是靠谱客的博主 爱笑水杯,最近开发中收集的这篇文章主要介绍Oracle trigger 启用/禁用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

节选自:ORACLE PL/SQL编程之八:把触发器说透

文章讲的比较详细。


8.2.6 重新编译触发器

如果在触发器内调用其它函数或过程,当这些函数或过程被删除或修改后,触发器的状态将被标识为无效。
当DML语句激活一个无效触发器时,ORACLE将重新编译触发器代码,如果编译时发现错误,这将导致DML语句执行失败。

在PL/SQL程序中可以调用ALTER TRIGGER语句重新编译已经创建的触发器,格式为:           
ALTER TRIGGER [schema.] trigger_name COMPILE [ DEBUG]
其中:DEBUG 选项要器编译器生成PL/SQL 程序条使其所使用的调试代码。

8.3 删除和使能触发器
删除触发器:
DROP TRIGGER trigger_name;

当删除其他用户模式中的触发器名称,需要具有DROP ANY TRIGGER系统权限,
当删除建立在数据库上的触发器时,用户需要具有ADMINISTER DATABASE TRIGGER系统权限。
此外,当删除表或视图时,建立在这些对象上的触发器也随之删除。 

禁用或启用触发器
数据库TRIGGER 的状态:
有效状态(ENABLE):当触发事件发生时,处于有效状态的数据库触发器TRIGGER 将被触发。
无效状态(DISABLE):当触发事件发生时,处于无效状态的数据库触发器TRIGGER 将不会被触发,此时就跟没有这个数据库触发器(TRIGGER) 一样。

数据库TRIGGER的这两种状态可以互相转换。格式为:
ALTER TIGGER trigger_name [DISABLE | ENABLE ];
--例:ALTER TRIGGER emp_view_delete DISABLE;

ALTER TRIGGER语句一次只能改变一个触发器的状态,而ALTER TABLE语句则一次能够改变与指定表相关的所有触发器的使用状态。格式为:             
ALTER TABLE [schema.]table_name {ENABLE|DISABLE} ALL TRIGGERS;

--例:使表EMP 上的所有TRIGGER 失效:
ALTER TABLE emp DISABLE ALL TRIGGERS; 
 
8.4 触发器和数据字典
相关数据字典:USER_TRIGGERS、ALL_TRIGGERS、DBA_TRIGGERS

SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT,
 TABLE_OWNER, BASE_OBJECT_TYPE, REFERENCING_NAMES,
 STATUS, ACTION_TYPE
 FROM user_triggers;



最后

以上就是爱笑水杯为你收集整理的Oracle trigger 启用/禁用的全部内容,希望文章能够帮你解决Oracle trigger 启用/禁用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部