2013-08-07 114 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