在Oracle 12c上,我需要使用过滤器创建触发器。我的过滤器是:使用过滤器触发器
WHEN PERIOD <> FN_PERIODNEXT
其中FN_PERIODNEXT
是一个函数。
以下是触发器的代码。
CREATE OR REPLACE TRIGGER AFTERIUDLIQUIDATIONSDETAILS
BEFORE INSERT OR DELETE
ON LIQUIDATIONSDETAILS
FOR EACH ROW
WHEN (NEW.PERIODID <> FN_PERIODNEXT)
BEGIN
IF INSERTING
THEN
UPDATE APPOINTSOFCAS
SET INLD = INLD + 1
WHERE CUSTOMERID = :NEW.CUSTOMERID
AND ID = :NEW.APPOINTOFCAID
AND KINDCONTROLID = :NEW.KINDCONTROLID;
END IF;
IF DELETING
THEN
UPDATE APPOINTSOFCAS
SET INLD = INLD - 1
WHERE CUSTOMERID = :OLD.CUSTOMERID
AND ID = :OLD.APPOINTOFCAID
AND KINDCONTROLID = :OLD.KINDCONTROLID;
END IF;
END;
/
这编译失败,具有:
[Error] Compilation (8: 26): ORA-04076: invalid NEW or OLD specification
什么是错误讯息? – Tenzin
[错误]编译(8:26):ORA-04076:无效的NEW或OLD规范 – Giorgos