从一个数据库更新到另一个,有条件
Posted
技术标签:
【中文标题】从一个数据库更新到另一个,有条件【英文标题】:Update from a database to another, with conditions 【发布时间】:2014-09-05 12:45:05 【问题描述】:我正在尝试从一个数据库更新到另一个有条件的数据库:
UPDATE table1
SET field1 = db2.field1, field2 = db2.field2...
FROM table1@database2 AS db2
WHERE db2.fieldaaa=table1.fieldaaa
AND db2.fieldbbb=table1.fieldbbb
也尝试过:
SET table1.field1 = db2.field1, table1.field2 = db2.field2...
这是我的错误信息: 00933. 00000 - “SQL 命令未正确结束”
有人可以帮帮我吗?
【问题讨论】:
Oracle 中没有 Update-Join。理论上,合并是可能的,但如果另一个数据库位于不同的物理位置,我不建议这样做。将光标与bulk collect into
结合使用从数据库链接中选择数据,然后使用forall
在数据库中进行更新。
【参考方案1】:
基于here 的回答。希望对您有所帮助!
update
table1 t1
set
(
t1.field1 ,
t1.field2
) = (
select
t2.field1,
t2.field2
from
table1@database2 t2
where
t2.fieldaaa=t1.fieldaaa
AND t2.fieldbbb=t1.fieldbbb
);
注意:要从其他数据库访问表,请确保您拥有 DBLink、权限和同义词。
【讨论】:
以上是关于从一个数据库更新到另一个,有条件的主要内容,如果未能解决你的问题,请参考以下文章