【发布时间】:2021-10-29 18:03:30
【问题描述】:
我正在尝试使用触发器从另一个数据库中更新一个表。我收到了丢失的表达式错误,我无法找出原因。错误位于:new.FO_CD != :old.FO_CD 行。我还在 :new.END_DT != :old.END_DT OR 行收到 PL/SQL: SQL Statement denied 错误。什么可能导致这两个错误?
CREATE OR REPLACE TRIGGER TRG_UPDATE_ITIN
AFTER DELETE OR UPDATE
ON FDL.PLA_ET
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF DELETING THEN
UPDATE
FMS.ITIN
SET
PLN_ET_UUID = NULL
WHERE
PLN_ET_UUID = :OLD.PLN_ET_UUID;
ELSIF UPDATING THEN
IF
:new.START_DT != :old.START_DT OR
:new.END_DT != :old.END_DT OR
:new.CREATED_DTTM != :old.CREATED_DTTM OR
:new.CREATED_USER_ID != :old.CREATED_USER_ID OR
:new.ACT_UUID != :old.ACT_UUID OR
:new.FO_CD != :old.FO_CD
THEN UPDATE FMS.ITIN
SET
START_DATE = :new.START_DT,
END_DATE = :new.END_DT,
CREATION_DATE = = :new.CREATED_DTTM,
CREATED_BY_USER = :new.CREATED_USER_ID,
ACT_UUID = :new.ACT_UUID,
FO_CTL_NBR = :new.FO_CD
WHERE
PLN_ET_UUID = :new.PLN_ET_UUID;
END IF;
END IF;
END;
【问题讨论】: