如何使用更新的 Oracle table 数据更新 SQL 服务器 table

How to update a SQL Server table with updated Oracle table Data

我正在使用 SQL 服务器(和 Oracle 作为链接服务器)。

该任务涉及使用对 Oracle TABLE.

中列 NAME 的任何新更改来更新 SQL 服务器 table

EMP为PK,NAME为可改列。

甲骨文 TABLE = TABLE1:

EMP                  NAME                
-------------------- --------------------
1                    JOE               
2                    David               
3                    BOB    

SQL 服务器 TABLE = TABLE1:

EMP                  NAME                
-------------------- --------------------
1                    JOE               
2                    David               
3                    FRED   

不工作的代码(运行并运行 w/o 更新):

 UPDATE OC 
    SET    OC.NAME = MS.NAME
    FROM   OPENQUERY(ORCL12,
      'select EMP, NAME from TEST1') OC 
         INNER JOIN [dbo].[TEST1] MS 
     ON MS.EMP = OC.EMP

感谢@elizabk,这就是答案。

UPDATE MS 
    SET    MS.NAME = OC.NAME
    FROM   OPENQUERY(WZ12,
      'select EMP, NAME from Test') OC 
   INNER JOIN [dbo].[TEST1] MS 
     ON OC.EMP = MS.EMP

注意:这最初是对原始问题的编辑。我刚把它搬到这里。 @elizabk 如果你想 post 你的回复,我会删除这个。

您正在更新 Oracle 服务器 OC 而不是 SQL 服务器 table MS.

UPDATE MS 
    SET    MS.NAME = OC.NAME
    FROM   OPENQUERY(WZ12,
      'select EMP, NAME from Test') OC 
   INNER JOIN [dbo].[TEST1] MS 
     ON OC.EMP = MS.EMP