【发布时间】:2012-05-30 16:46:06
【问题描述】:
MERGE INTO table_1 a
USING
(SELECT * from table_2) b ON ( a.row_id = b.row_id and a.in_correct IS NULL)
WHEN MATCHED THEN UPDATE SET a.in_correct = 'Y';
在上述查询中 ORA-38104:ON 子句中引用的列无法更新。
我已经坐了几个小时来解决这个问题。
我发现问题出在 in_correct 字段上。
此字段“in_correct”不能放在 ON 子句中,也不能放在 SET 后面。但是为了满足我的条件,我别无选择。
请帮帮我
【问题讨论】:
-
您提到:“为了满足我的标准,我别无选择”。请告诉我们您的标准。
-
@peter:条件是我想在ON子句中检查in_correct是否为NULL
-
@peter:我必须更新表 A 中的一个字段,条件是来自表 A 数据和表 B 数据的字段。所以我使用了合并更新。我使用过的查询(在我的问题中看到)如果我指定一个列名(在更新和 ON 子句中都存在)失败。希望我很清楚
标签: oracle oracle10g oracle11g