0

所以我有两个系统,我经常必须将它们连接在一起才能显示某些报告。我有一个系统将元数据存储在存储在 SQL Server 中的文档上,通常按部件号。我想要获取文档的零件编号列表来自我们 ERP 系统中的 Oracle 表。我目前的方法是这样的:

  1. 将数据从 ERP (Oracle) 系统获取到DataTable.
  2. 从列中编译string[]零件号。
  3. 使用IN()语句将所有文档信息从 docs (MSSQLSVR) 系统获取到另一个DataTable.
  4. 向 ERP 添加列DataTable,循环遍历行。
  5. 从 docs 填写文档信息DataTableif(erpRow["ITEMNO"] == docRow["ITEMNO"])

这对我来说真的是低效的。现在显然我不能JOIN对两个表使用一个连接字符串,或者使用数据库链接,所以我假设必须有两个调用,每个数据库一个。有没有其他方法可以将这两组连接在一起?

4

2 回答 2

3

我建议采用 LikedServer 方法(http://msdn.microsoft.com/en-us/library/ms188279.aspx)。在 SQL Server 端编写一个存储过程,从 Oracle 链接服务器中提取数据,在本地执行 JOIN 并返回组合数据。

SQL Server 旨在有效地执行 JOIN。无需尝试在应用层重新创建该功能。

于 2013-06-24T21:17:00.543 回答
2

由于您排除了数据库链接,我将执行以下操作

  1. 将数据从 ERP (Oracle) 系统获取到 DataTable。
  2. 通过表值参数将 DataTable 作为参数传递给 SQL Server
  3. 返回您的数据(没有循环更新旧集)
于 2013-06-24T21:25:29.060 回答