在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