从一个数据库更新到另一个,有条件

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、权限和同义词。

【讨论】:

以上是关于从一个数据库更新到另一个,有条件的主要内容,如果未能解决你的问题,请参考以下文章

将 Azure 数据工厂管道有条件地部署到另一个资源组

Pandas:根据条件将值从一个数据帧合并到另一个数据帧

将数据从一个表更新到另一个表(在数据库中)

如何将数据库中的数据从一个服务器微服务更新到另一个?

将数据从一个表更新到另一个表并在新的 ms 访问 .net 时插入

在特定条件下将数据从一个选项卡自动填充到另一个选项卡