MERGE Into 无法更新ON子句中引用的列

代码如下: 
MERGE Into t1 T1
  Using (Select * From t2) T2 
  On (T1.ID=T2.ID) 
  When MATCHED THEN 
    UPDATE Set 
	T1.ID = T2.ID, 
	Y.JTBM = J.JTBM,
	···
 
  

执行的时候报无法更新on子句中引用的列'T1'.'ID'

解决办法:

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

MERGE Into t1 T1
 Using (Select * From t2) T2 
 On (T1.ID=T2.ID) 
 When UPDATE Set
	Y.JTBM = J.JTBM,
	···
 When NOT MATCHED THEN 
	INSERT (id,b) VALUES(T2.ID,T2.b);
 
  
 
  

执行后成功。

你可能感兴趣的:(Oracle数据库)