Oracle 第3行错误:PL/SQL:ORA-01747:无效的user.table.column、table.column或column规范
嗨,我在oracle中编写了一个sql脚本Oracle 第3行错误:PL/SQL:ORA-01747:无效的user.table.column、table.column或column规范,oracle,plsql,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.RENDSZ
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或column规范
有人能帮我吗?我尝试了以下方法,并且效果良好。正如sstan前面提到的,update语句中不能有两个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;
/
在调用表之前,请始终记住在架构名称前面加前缀
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;
创建或替换触发器。更新
更新RENDSZAM后,MODELL
自动
每行
开始
更新:TIPUS
设置TIPUS.RENDSZAM=:NEW.RENDSZAM,
TIPUS.MODELL=:NEW.MODELL
其中TIPUS.RENDSZAM=:OLD.RENDSZAM
和TIPUS.MODELL=:OLD.MODELL;
终止
首先,在update
语句中不能有2个set
子句。为什么您认为这是命名问题?