是否可以为当前会话禁用Oracle触发器?

ken*_*ada 12 oracle triggers

我想在将数据插入表之前禁用表上的特定触发器,但不会影响可能正在更改同一表中数据的其他用户.我找不到任何记录的方法来做到这一点.这是Oracle 11g.

我能够提出的最佳解决方案是创建一个会话变量,并让我的应用程序将其设置为触发器在执行其工作之前检查的某个值.

强制性的反触发评论:我讨厌触发器.

red*_*uga 4

将变量添加到现有包规范(或创建新包):

enable_trigger 布尔值 := true;

将触发器中的代码括起来:

如果启用_触发则

万一;

当您想要“禁用”触发器时,请将变量设置为 false。

最佳实践是将变量放入主体中并编写一个设置过程和一个获取函数。