Oracle 更新时触发器-在其自身执行期间触发?
我有下面的触发器定义Oracle 更新时触发器-在其自身执行期间触发?,oracle,plsql,oracle11g,oracle10g,Oracle,Plsql,Oracle11g,Oracle10g,我有下面的触发器定义 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=:
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;
/
触发器将在以下场景中执行
我需要对其进行编码以避免递归吗?不需要,这样就可以了,当您将值设置为:NEW.OC时,这实际上不是在更新表,只有在触发代码完成后,才使用您将:NEW.OC设置为的值更新/插入表