【问题标题】:How to find different data in SQL Server table and equivalent table in Oracle?如何在 SQL Server 表和 Oracle 中的等效表中查找不同的数据?
【发布时间】:2021-10-14 14:11:51
【问题描述】:

有一个 SQL Server 表,它在 Oracle 中具有等效的表。它们通过链接服务器进行连接,当向 SQL Server 表中插入、更新或删除新记录时,Oracle 表将使用不同的触发器进行更新。

如果禁用 SQL Server 触发器,Oracle 表也不会更新。因此在 SQL Server 和 Oracle 中会生成不同的数据行。

我们如何找到这些不同的数据?这是检查触发器是否启用的任何方法吗?

【问题讨论】:

  • 你应该在 serverfault 上询问它。
  • 您可以以某种方式监控触发器状态,这是 mykong 的一个示例:mkyong.com/oracle/oracle-plsql-check-the-trigger-status 关于比较来自 2 个不同数据库服务器的数据,我建议将两者都复制到一个服务器(sqlserver 或 oracle)和将两者与减号进行比较,或转储两个表并使用第三方工具查找差异。

标签: sql sql-server oracle triggers linked-server


【解决方案1】:

可以使用MINUS 集合运算符找到“A”中而不是“B”中的内容。例如,如果两个表中都有一个共同的 ID 列,您会

select id from ms_sql_server_table
minus
select id from oracle_table

对其应用“链接服务器”语法;在 Oracle 中,我想这将是一个数据库链接。


我不知道如何检查 MS SQL Server 中是否启用了触发器;我不使用那个数据库。

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 2014-10-24
    • 2011-09-04
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多