编写触发器逻辑:
CREATE OR REPLACE TRIGGER update_bms_ord_record
AFTER UPDATE OF status ON oms.oms_order
FOR EACH ROW
BEGIN
CASE
WHEN UPDATING('status') THEN
IF :NEW.status='SIGN' THEN
UPDATE bms_ord_record ord SET ord.Be_Sign=1,ord.sign_time=:OLD.ACTUAL_RECEIVE_TIME WHERE ord.relatebill1=:old.relatebill1;
ELSIF :OLD.status='SIGN'
UPDATE bms_ord_record ord SET ord.Be_Sign=0,ord.sign_time=NULL WHERE ord.relatebill1=:OLD.relatebill1;
END IF;
END CASE;
END;
写完上述逻辑后在sql窗口进行执行,未报任何异常;
第三步:测试
我写了一个update语句进行测试,
UPDATE oms_order o SET o.status='SIGN2' WHERE o.relatebill1='50010777';
但是报错,
我始终在我的plsql中查询不到我触发器,检查对应的oms_order表,表上确实是有触发器的.
切换用户后, 即可能看到自己的触发器, 如下图
点击编辑,就可以在右边窗口下面看到相应的错误, 或者再次执行一下脚本, 错误出现的地方会有黄色光标行停留