如何比较来自不同数据库的两个表
Posted
技术标签:
【中文标题】如何比较来自不同数据库的两个表【英文标题】:How to compare two tables from different databases 【发布时间】:2017-01-31 09:24:49 【问题描述】:我有两个数据库,SqlServer 2016 和 Oracle 10(镜像复制)。
我想比较来自不同数据库的两个相同表,而不从客户端上的表中获取所有数据。
例如:我有两个巨大的表(大小 > 500 MB),我该怎么做? 也许任何地方都有一些算法可以做到...
附:我已经实现了一些算法,但是这个算法的工作速度太慢而且工作准确率很低。
【问题讨论】:
你能设置 DBlink 吗?您可以将表从一台服务器导出/导入到另一台服务器吗?什么是yopur数据?您只能比较一些键还是需要比较所有字段?你的问题很笼统。请提供更多详细信息。 不,我不能手动从一个导入/导出到另一个(复制过程是自动的),我不能长时间阻塞表。我需要通过单击我的应用程序中的按钮来检查两个表。我的数据是 datatime、varchar、timestamp、numberic 等列。我需要比较所有字段,整个表。 【参考方案1】:您可以使用 OPENROWSET 从 SQL Server 连接到 Oracle
select * from
OPENROWSET('OraOLEDB.Oracle','<tnsname>';'someuser';'somepassword',
'SELECT * FROM schema.table_to_compare') A
FULL JOIN sqlserver.table_to_compate B
ON A.field = B.field
【讨论】:
谢谢 - 但这种情况不适合(由于不同的服务器位置、流量、网络冲突等)。我想知道我的客户端(WPF 应用程序)的比较结果,我承认在我的客户端上得到了一些比较结果。 也许有一些变体可以从两个数据库中获取结果(一些哈希、校验和算法)数据集并在我的客户端上进行最终比较?以上是关于如何比较来自不同数据库的两个表的主要内容,如果未能解决你的问题,请参考以下文章