3
MERGE INTO target_table tgt
USING source_table src
on(tgt.c1=src.c1)
WHEN MATCHED THEN
UPDATE SET tgt.c1=src.c2
我得到ORA-38104: Columns referenced in the ON clause cannot be updated
代码。我明白这个错误的原因。但是,我们如何重写这段代码呢?有没有使用光标的可能性?
我得到这个错误'语句的
WHEN NOT MATCHED
部分ORA- 01445-无法从连接视图中选择ROWID而没有键保存表原因:SELECT语句试图从连接操作派生的视图中选择ROWID。由于在视图中选择的行不对应于基础物理记录,因此不能返回ROWID。 '如果我使用这个查询 – Vivek你必须做些稍微不同的事情。你确定你有'T2.ROWID AS''吗?使用'src.ROWID'是不合法的,这就是为什么我用别名'AS rid' – Sodved
是的,你是对的。我错过了将't2.ROWID'重命名为'rid'。它在我添加别名后工作正常。谢谢深深地暗示:) – Vivek