如何将参数传递给Oracle存储过程在SSIS包

问题描述:

我使用执行SQL任务调用Oracle存储过程,我想一个参数传递给Oracle存储过程如何将参数传递给Oracle存储过程在SSIS包

查询中执行SQL任务: -

BEGIN 
PKG_METRICS.GET_STUDY_METRIC(@myparameter, 'FIRST_SITE_SELECTED', 'LAST_SITE_SELECTED', 6, null,'SITE'); 
END; 

请让我知道你的意见......

你应该去表达的SQL任务, 再加入表达SqlStatementSource ,并把这个代码对话窗口内: "BEGIN PKG_METRICS.GET_STUDY_METRIC("+@var_myparameter+", 'FIRST_SITE_SELECTED', 'LAST_SITE_SELECTED', 6, null,'SITE'); END;"

之前,您应该添加字符串变量@var_myparameter

您可以像上面建议的那样将字符串构建为字符串,但是如果它们是管道中ole db命令的输入,也可以将参数传递给Oracle。创建一个OLE DB命令块。在组件属性中输入sql并放置?标记参数应该在哪里。接下来转到输入和输出属性。展开OLE DB命令输入并为每个需要传递的参数添加一个外部列。从零开始,从上到下排列MappedColumnId选项卡。将它们映射到列映射选项卡上的输入。

如果您的参数只是SSIS中的参数,而不是管道中的参数,您可以使用简单派生列将其添加到管道中。你也可以使用你最喜欢的oracle访问DLL从脚本组件执行proc。

没有完美的选择,但有办法做到这一点!

+0

这是2012年 – chrisPfeif518

除了chrisPfeif518: 甲骨文(对我来说),在OLE DB命令的任务,我使用的语法:

{call ... } 

为你的情况应该是:

{call PKG_METRICS.GET_STUDY_METRIC(?, ?, ?, ?, ?,?)}