【问题标题】:Working with data from Oracle and SQL Server处理来自 Oracle 和 SQL Server 的数据
【发布时间】:2011-12-29 05:51:40
【问题描述】:

如果我想同时查询 Oracle 和 SQL Server 数据,我正在尝试找出我有哪些选项。

这是场景:

Oracle 数据库包含数据集 A SQL Server 数据库包含数据集 B、C、D

我需要获取数据集 A 并将其分别与 B、C 和 D 连接,以生成某些结果和计数。

目前的解决方案:

  1. 查询 Oracle,将数据导出到 SQL Server 插入语句中。
  2. 在 SQL Server Management Studio 中运行我从 Oracle 生成的 SQL Server 插入语句,以将数据插入到临时表中
  3. 根据需要将临时表与数据集 B、C 和 D 结合起来

我正在寻找对数据库造成最少调用和工作量的解决方案。

编辑:我忘了提到链接服务器或任何更改服务器配置的东西都是不允许的。

【问题讨论】:

  • 它是否需要仅作为数据库解决方案或借助代码?如果是后者,您使用的是什么技术(例如 .NET)?在 .NET 中,您可以使用不同的连接字符串来填充不同的数据集并通过 LINQ-To-DataSet 连接它们。
  • 我正在使用 .net。所以,你的评论和 xQbert 给我的链接......我可以查询 Oracle 并将我的数据存储到 DataSetA,然后查询 SQL 服务器 3 次并存储到 DataSetB、DataSetC 和 DataSetD。然后使用 linq 加入数据集?这会导致只有 4 次数据库调用,并且所有 DataSet 连接部分都将发生在内存中吗?
  • 你说的数据量是多少?您是否考虑过从 Oracle 中选择一个文件,批量复制到 SQL Server 表中,然后加入该文件?您不需要很多行就比生成 INSERT 语句更好。
  • @metanaito:是的,那是我的想法。理想情况下,您只需要两个查询(每个 dbms 一个)和两个数据集即可将它们加载到内存中。 join/group/sum等。会发生在记忆中。但是xQbert建议LINQ-To-SQLLINQ-To-Datasets不一样。

标签: sql-server


【解决方案1】:

您可以通过编写 MSSQL SSIS 包来完成此操作。这将允许您将 Oracle 数据与 MSSQL 数据连接起来。 SSIS 包通常用于将数据从一个表/服务器更新或移动到另一个,因此可行性可能取决于您对该任务/项目的基本目标。

这是关于creating an SSIS package 的简短教程。这是how to connect to an Oracle data source from within an SSIS package上的说明链接。

【讨论】:

  • SSIS +1。您也可以将服务器连接到 Oracle,但速度很慢。
  • 我将其标记为答案,因为没有更多答案,但在我的场景中,我们使用了 LINQ 和数据集。
猜你喜欢
  • 2019-05-19
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 2019-08-11
  • 1970-01-01
相关资源
最近更新 更多