【发布时间】:2014-09-28 02:04:33
【问题描述】:
我想在 Oracle 11g 中编写一个更新,我想只用 TableCDC 中的更改来更新 tableA。我不想更新表 A 中的所有行,我只想更新在 TableA 和 TableCDC 之间发生变化的行。
Update tableA
set (tableA.col1,tableA.col2,tableA.col3)
= (select col1,Col2,Col3 from tableCDC
where tableA.ID = tableCDC.ID
and tableA.Year = tablecdc.Year)
where (tableA.col1 <> tablecdc.col1
or tableA.col2 <> tablecdc.col2
or tableA.col3 <> tablecdc.col3)
这不起作用...如何以正确的格式编写?
【问题讨论】:
-
您正在尝试引用tableCDC,其范围仅存在于子查询中。
标签: sql oracle plsql oracle11g