zoukankan      html  css  js  c++  java
  • Oracle“ORA-38104: 无法更新ON子句中引用的列”解决方式

    今天在plsql中使用merge into更新字段时遇到了一个问题。

    相关代码如下:

        MERGE INTO TABLE1 A
        USING (SELECT T.ID, T.NEW_CORE_SIZE FROM TABLE2 T) B
        ON (A.ID = B.ID AND A.CORE_SIZE IS NULL)
        WHEN MATCHED THEN
          UPDATE SET A.CORE_SIZE = B.NEW_CORE_SIZE;

    这里请注意,在ON中出现的字段,不可以在WHEN MATCHED THEN中更新,所以无法更新A.CORE_SIZE字段

    正确的写法如下:

        MERGE INTO TABLE1 A
        USING (SELECT T.ID, T.NEW_CORE_SIZE FROM TABLE2 T) B
        ON (A.ID = B.ID)
        WHEN MATCHED THEN
          UPDATE SET A.CORE_SIZE = DECODE(A.CORE_SIZE,null,B.NEW_CORE_SIZE,A.CORE_SIZE);
  • 相关阅读:
    组合数取模的题……
    对组合数取模
    n!(n的阶乘)
    八、元素绑定
    七、Application类
    RC振荡电路
    运算放大器工作原理
    No
    合并查询结果
    连接查询
  • 原文地址:https://www.cnblogs.com/MrZhaoyx/p/13225294.html
Copyright © 2011-2022 走看看