我更新了'002'表中的'MEAIN_STAT_CODE_NO'列时创建了一个触发器。 但是,当我更新时,会发生触发错误。
更新声明
UPDATE TB_REN016_002 A
SET A.MEAIN_STAT_CODE_NO=7003
WHERE A.CID=11101000001;
触发陈述
CREATE TRIGGER TRI_MEAIN_STAT_EVENT
AFTER
UPDATE OF MEAIN_STAT_CODE_NO ON TB_REN016_002
FOR EACH ROW
BEGIN
IF :NEW.MEAIN_STAT_CODE_NO = 7002 THEN
IF :OLD.MEAIN_STAT_CODE_NO = 7003 OR :OLD.MEAIN_STAT_CODE_NO = 7004 THEN
UPDATE TB_REN016_003 U
SET MEAIN_STAT_CODE_NO = 3001
WHERE U.CID=:NEW.CID
AND U.MEAIN_EVENT_CODE_NO=4003;
UPDATE TB_REN016_006 E
SET EVENT_STAT_CODE_NO = 20001
WHERE U.CID=:NEW.CID
AND E.EVENT_CODE_NO=4003
AND E.OCUR_DTM=(SELECT MAX(E2.OCUR_DTM) FROM TB_REN016_006 E2 WHERE E2.CID=:NEW.CID AND E2.EVENT_CODE_NO=4003);
END IF;
END IF;
IF :NEW.MEAIN_STAT_CODE_NO = 7003 OR NEW.MEAIN_STAT_CODE_NO = 7004 THEN
UPDATE TB_REN016_003 U
SET MEAIN_STAT_CODE_NO =
(SELECT A.EVENT_GRD_CODE_NO
FROM TB_REN016_039 A
WHERE EVENT_CODE_NO=4003
)
WHERE U.CID=:NEW.CID
AND U.MEAIN_EVENT_CODE_NO=4003;
INSERT
INTO TB_REN016_006
(
MEAIN_EVENT_SERI_NO,
CID,
OCUR_DTM,
EVENT_CODE_NO,
EVENT_GRD_CODE_NO,
EVENT_CTNT,
EVENT_FIGR,
EVENT_STAT_CODE_NO,
EVENT_TRME_STAT_CODE_NO,
EVENT_OCUR_CUS
)
VALUES
(
MEAIN_EVENT_SEQ.nextval,
:NEW.CID,
SYSDATE,
4003,
(SELECT A.EVENT_GRD_CODE_NO FROM TB_REN016_039 A WHERE EVENT_CODE_NO=4003 ),
(SELECT A.EVENT_OCUR_CUS_EXPL FROM TB_REN016_039 A WHERE EVENT_CODE_NO=4003),
-1,
20002,
21001,
(SELECT A.EVENT_DSPO_MTHD_EXPL FROM TB_REN016_039 A WHERE EVENT_CODE_NO=4003 )
);
)
END IF;
END;
/
当列'MEAIN_STAT_CODE_NO'更改为7002时,更新表'TB_REN016_003'和'TB_REN016_006'。如果列'700_'更改为7003或7004,则更新表'TB_REN016_003'并插入表'TB_REN016_006'。