ORA-38104: 无法更新 ON 子句中引用的列: "A"."MAINID"

Posted 老王学Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-38104: 无法更新 ON 子句中引用的列: "A"."MAINID"相关的知识,希望对你有一定的参考价值。

MERGE Into ywk_nmjtjbsj Y 
  Using (Select * From KSXNH_JZK.jzk_nmjtjbsj  Where NVL(XGBZ,'1')!='1' And  nvl(sfydq,'2')='j9') J 
  On (J.ID=Y.ID) 
  When MATCHED THEN 
    UPDATE Set  
           Y.ID          =  J.ID , 
           Y.JTBM        =  J.JTBM, 
           ··· 
执行的时候报无法更新on子句中引用的列'Y'.'ID' 


这是存储过程中的一段代码,请高手、指点如何解决、 



已解决: 
       ON中Y.ID已经与J.ID进行了匹配,所以在SET中不能再对Y.ID赋值,去掉该行即可。

以上是关于ORA-38104: 无法更新 ON 子句中引用的列: "A"."MAINID"的主要内容,如果未能解决你的问题,请参考以下文章

Oracle -- 更新 ON 子句中引用的确切列

JOIN 的 ON 子句中引用的表的顺序是不是重要?

SQL语句中,子句不能使用列别名问题

更新连接中使用的列

在 ON CONFLICT 子句中使用多个冲突目标

Merge:探讨on子句和when not match子句的陷阱