【发布时间】:2015-10-17 21:39:39
【问题描述】:
我有以下触发器定义
PROMPT CREATE OR REPLACE TRIGGER C_BUSINESS_TABLE
CREATE OR REPLACE TRIGGER C_BUSINESS_TABLE
BEFORE INSERT OR UPDATE OF OC ON OUT_TAB FOR EACH ROW
DECLARE
v_OC OUT_TAB.OC%type;
BEGIN
SELECT OC into v_OC from ORDERS WHERE ORDER_ID=:NEW.ORDER_ID and ORDER_SEQ=:NEW.ORDER_SEQ and rownum=1;
IF :NEW.OC != v_OC and v_OC is not NULL THEN
:NEW.OC:=v_OC;
END IF;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
触发器打算在以下场景中执行
- 在 OUT_TAB OR 中插入记录
- 在 OUT_TAB 上更新 OC 字段
在触发器主体内,字段 OC 本身已更新。该更新会再次(并递归地)调用触发器吗?
我是否需要对其进行编码以避免递归?
【问题讨论】:
标签: oracle plsql oracle11g oracle10g