我有这样的代码
MERGE INTO target_table tgt
USING source_table src
on(tgt.c1=src.c1)
WHEN MATCHED THEN
UPDATE SET tgt.c1=src.c2
I get ORA-38104: Columns referenced in the ON clause cannot be updated
。我明白这个错误的原因。但是我们如何重写这段代码呢?不使用光标是否有可能?
怎么样,外连接意味着rid
将为空并因此失败,因此流入WHEN NOT MATCHED
声明的一部分(如果您有的话)
MERGE INTO target_table tgt
USING ( SELECT t2.ROWID AS rid
, s2.c2
FROM target_table t2
, source_table s2
WHERE t2.c1 (+) = s2.c1
) src
ON (tgt.rowid = src.rid)
WHEN MATCHED THEN
UPDATE SET tgt.c1=src.c2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)