2013-08-07 52 views
0

是否有可能从SSIS“脚本任务”已经呼吁通过使用xp_cmdshell的存储过程返回输出参数?返回输出Paramters或变量在SSIS脚本任务/脚本组件

我发现

所有样品到目前为止展示如何赋值DTS包变量等;并通过消息框显示它们,但是我看到的每个示例都显示脚本任务仅返回Dts.TaskResult =(int)ScriptResults.Success;或Dts.TaskResult =(INT)ScriptResults.Failure ...

基本上,我有一个脚本任务,从一个DLL调用的作品如预期得到几个值;值用消息框验证;但我一直无法找出如何将这些返回到最初执行SSIS包的存储过程。

我失去了一些东西明显?请提供功能的代码示例控制流/数据流等,如何做到这一点的端到端的&或屏幕截图... EG:从一个存储过程 - >执行A * .dtsx程序包,传递给它的参数,包括OUTPUT参数;以及该存储过程如何读取这种类型的调用中的输出参数;当结果返回...

在此先感谢。

回答

2

我不知道是否有可能在脚本任务,您的电话存储过程返回值,但在这里是一种替代办法,我会做到这一点,可以让你的最终结果。创建本地SSIS变量,可以捕获当前在消息框中显示的脚本任务中的值。例如创建一个名为mySSISVariable

Variable Window

在执行任务的脚本屏幕上,一定要选择mySSISVariable为ReadWriteVariables:

Script Task Script Screen

现在在你的脚本任务分配这个SSIS变量无论你当前输出到消息框:Dts.Variables["User::mySSISVariable"].Value = returnedValue;既然SSIS将这个值存储在一个变量中,你可以在调用你的新存储过程时使用它,这样做可以完成任何你的调用st ored procedure本来应该用这些变量,在一个Execute SQL Task中(对于多个参数不断添加?这样usp_MyNewStoredProcedure ?, ?, ?

Execute SQL Task General Screen

并确保您的SSIS的用户变量分配作为输入参数(在这个例子中,我使用OLE DB,这link显示了如何可以其他使用来完成):

Execute SQL Task Parameter Screen