PL/SQL: ORA-00936: 使用触发器时缺少表达式

PL/SQL: ORA-00936: missing expression while using trigger

我正在尝试使用触发器从一个数据库更新另一个数据库中的 table。我收到缺少表达式错误,我无法找出原因。错误在 :new.FO_CD != :old.FO_CD 行。我还在 PL/SQL: SQL Statement ignored:new.END_DT != :old.END_DT OR 处出现错误。是什么导致了这两个错误?

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;

这是错误的:

UPDATE fms.itin SET 
        start_date = :new.start_dt,
        end_date = :new.end_dt,
        creation_date = = :new.created_dttm,          --> here
        created_by_user = :new.created_user_id,

你有两个连续的 = = 标志。


也许还有其他错误,但没有你的表格,我无法运行编码你发布的代码。考虑发布 CREATE TABLE 声明。