【问题标题】:Using Stored Procedure result as parameter in where into OLE DB Source使用存储过程结果作为参数放入 OLE DB 源
【发布时间】:2017-09-21 13:05:58
【问题描述】:

我开始使用 SSIS,但在实现 Oracle 数据库和我的 SQL Server 之间的连接时遇到了一些疑问。 我的 SQL Server 数据库中有一个存储过程,它返回几个订单,这些订单需要使用 Oracle 数据库中的一些信息进行更新。 那么,任何人都可以帮助我想办法做到这一点?我只需要运行我的过程,获取结果集并在 SQL 命令中使用它到 OLE DB 源中,在 where 子句中。谢谢!

【问题讨论】:

  • 你的问题有点太宽泛了。 SSIS 是一个完美的工具,但我们不能为你设计一个完整的包。如果您有任何问题,请查看一些 SSIS 教程,查看一些用例并返回有关实施的具体问题。
  • 我不希望你为我创建一个包...我只是问是否有人可以建议我如何做到这一点..如果你是 SSIS 的上帝,对不起我.. . 到目前为止我正在学习它......
  • 别误会我的意思。我要说的是,这个社区喜欢先看到你的意见,然后再给你指路。从上到下解释整个事情有点困难,一旦您自己思考一下,您会更容易理解我们的方向。
  • 别担心.. 其他人可以告诉我如何解决我的问题...

标签: sql-server ssis


【解决方案1】:

既然你提出了一个广泛的问题,我将用一个广泛的策略来回答。

在执行 SQL 任务中运行您的存储过程,并将结果存储在一个变量中。使用该变量使用您的 Oracle 查询字符串构建第二个变量。然后将第二个变量用作 OLE DB 源中的 SQL 查询。

【讨论】:

  • 感谢您的回答。我已经创建了一个执行 SQL 任务,将我的完整结果集保存到一个对象数据类型变量中...但是当我转到我的数据流时,我不能'看不到我的变量...在您的建议中,我需要在我的数据流或控制流中创建第二个变量(我的变量被创建到包范围中)?我看到一些教程建议我使用 foreach 循环容器......但这对我来说没有意义......
  • 是的,因为您的第一个变量是对象类型,您需要使用 foreach 循环遍历它,并在该循环的脚本任务中构建您的第二个变量。第二个变量必须是包级别的,因此必须内置在控制流中。或者您可以跳过 foreach 循环,只编写一个脚本任务来迭代对象变量并构建字符串变量。
  • 酷...非常感谢...我会在这里尝试并让您知道我是否能够实现...
  • Tab.. 我能够实现我的流程.. 非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多