【发布时间】:2012-02-08 05:58:30
【问题描述】:
我对 Oracle 触发器非常陌生。假设我在表 emp 中插入了一个触发器。有没有办法找出触发触发器的插入记录是什么。如果插入的记录是特定值,我希望触发器具有执行某些操作的代码。
【问题讨论】:
我对 Oracle 触发器非常陌生。假设我在表 emp 中插入了一个触发器。有没有办法找出触发触发器的插入记录是什么。如果插入的记录是特定值,我希望触发器具有执行某些操作的代码。
【问题讨论】:
【讨论】:
假设您有一个行级触发器,您可以简单地使用:NEW 伪记录
CREATE TRIGGER name_of_trigger
BEFORE INSERT ON emp
FOR EACH ROW
DECLARE
<<declare variables>>
BEGIN
IF( :new.ename = 'JUSTIN' )
THEN
<<do something if the newly inserted ENAME value is 'JUSTIN'>>
END IF;
END;
对于 DDL 触发器,方法完全不同。在这种情况下,伪函数 ora_dict_obj_owner 和 ora_dict_obj_name 将返回 DDL 语句正在操作的表的所有者和名称。
【讨论】:
CREATE OR REPLACE TRIGGER drop_trigger AFTER CREATE ON hr.SCHEMA BEGIN END; 中创建新表时,我都会调用触发器我如何获得现在触发触发器的创建表的名称?它还是新的吗?