第3行出错:PL / SQL:ORA-01747:user.table.column,table.column或列规范无效

时间:2015-12-06 09:27:23

标签: oracle plsql

您好我在oracle中编写了一个sql脚本。

CREATE OR REPLACE TRIGGER TIPUSUPDATE
AFTER UPDATE OF RENDSZAM, MODELL
ON AUTO
FOR EACH ROW
BEGIN
    UPDATE TIPUS
    SET TIPUS.RENDSZAM = :NEW.RENDSZAM,
    SET TIPUS.MODELL = :NEW.MODELL
    WHERE TIPUS.RENDSZAM = :OLD.RENDSZAM
    AND TIPUS.MODELL = :OLD.MODELL;
END;

我创建了表,但是当我运行此脚本时,我收到一条错误消息:

  

第3行出错:PL / SQL:ORA-01747:user.table.column,table.column或列规范无效。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

我尝试了以下,它正在工作。如前面提到的那样,你不能在update语句中有2个set子句。确保在执行以下

之前创建表AUTO和TIPUS
CREATE OR REPLACE TRIGGER TIPUSUPDATE
AFTER UPDATE OF RENDSZAM, MODELL ON AUTO
FOR EACH ROW
BEGIN
UPDATE TIPUS
SET TIPUS.RENDSZAM = :NEW.RENDSZAM,
TIPUS.MODELL = :NEW.MODELL
WHERE TIPUS.RENDSZAM = :OLD.RENDSZAM
AND TIPUS.MODELL = :OLD.MODELL;
END;
/

答案 1 :(得分:-1)

在调用您的表格之前,请务必记住为SCHEMA NAME添加前缀。

CREATE OR REPLACE TRIGGER <schema_name>.TIPUSUPDATE
AFTER UPDATE OF RENDSZAM, MODELL
ON <schema_name>.AUTO
FOR EACH ROW
BEGIN
    UPDATE <schema_name>.TIPUS
    SET TIPUS.RENDSZAM = :NEW.RENDSZAM,
        TIPUS.MODELL = :NEW.MODELL
    WHERE TIPUS.RENDSZAM = :OLD.RENDSZAM
    AND TIPUS.MODELL = :OLD.MODELL;
END;