首页 > 解决方案 > 带有 UPDATE OF 的 Oracle 触发器(列名与表相同)

问题描述

我的专栏与我的一张表同名,我的专栏有问题。在这种情况下我不能使用 table.column

repres 是 windev 数据库中的一个表,是 commerc 数据库和 devevent 表中的一个列,我在其中创建了这个触发器

当我这样做时:AFTER UPDATE OF etat,total, devent.repres 我有:ERROR line 2, col 35, ending_line 2,ending_col 35, Found '.', Expecting: 或 ON OR

这是我的代码:

CREATE OR REPLACE TRIGGER WINDEV_AES_UPDATE
AFTER UPDATE OF etat,total, repres
ON COMMERC.DEVENT
FOR EACH ROW

DECLARE

BEGIN

  IF UPDATING AND :OLD.etat != :NEW.etat THEN
  INSERT INTO windev.aes (code) 
  SELECT (:NEW.CODE)
  FROM DUAL
  WHERE NOT EXISTS (SELECT * FROM windev.aes WHERE code = :NEW.CODE);

  UPDATE windev.aes SET aes.update_flag = 1 WHERE aes.code = :NEW.CODE; 
  END IF;

  IF UPDATING AND :OLD.total != :NEW.total THEN
  INSERT INTO windev.aes (code) 
  SELECT (:NEW.CODE)
  FROM DUAL
  WHERE NOT EXISTS (SELECT * FROM windev.aes WHERE code = :NEW.CODE);

  UPDATE windev.aes SET aes.update_flag = 1 WHERE aes.code = :NEW.CODE; 
  END IF;



END;
/

我希望你能告诉我如何解决这个史诗般的问题 ;-)

标签: oracleplsqloracle10gdatabase-trigger

解决方案


推荐阅读