如何使用更新的Oracle表数据更新SQL Server表

时间:2019-02-25 19:45:29

标签: sql-server openquery

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

该任务涉及对Oracle TABLE中的NAME列进行任何新更改来更新SQL Server表。

EMP是PK,而NAME是可以更改的列。

ORACLE TABLE = TABLE1:

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

SQL SERVER TABLE = TABLE1:

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

无效的代码(运行并且不进行更新):

 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

2 个答案:

答案 0 :(得分:1)

感谢@elizabk,这就是答案。

def get_title_case_name(self):
        return self.name.title()

注意:这最初是对原始问题的编辑。我刚搬到这里@elizabk如果您要发布回复,我将删除此回复。

答案 1 :(得分:0)

您正在更新Oracle服务器OC,而不是SQL Server表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