我有這樣的情形中,從程序得到一個輸出值:傳遞一個值T-SQL操作,並使用執行SQL任務SSIS
我需要通過@id
到存儲過程,並從該@key
使用SSIS Execute SQL task
過程:
create PROCEDURE lProcedurename
(@ID int ,
@key int output
)
with execute as caller
as
set nocount on;
begin
BEGIN TRY
set @key=999
END TRY
begin catch
----some codes
end catch
end
請找到執行SQL任務屬性
結果設置爲單行
我已執行SQL語句(SSIS執行SQL任務級別)的
exec lProcedurename @ID = ? , @key = ?
參數映射爲
variablename ,direction, data type, parametername ,parameter size
user::id input long o -1
user::key output long 1 -1
結果設置爲
resultname,variablename
0 user::key
但當我運行包時它出現錯誤..請讓我知道是屬性設置合作正確嗎?
請參閱錯誤
* SSIS包 「package1.dtsx」 開始。 錯誤:在CMD審計OnPreExecute 0x0:沒有結果行集與此查詢的執行相關聯。 錯誤:0xC002F309在CMD審計OnPreExecute,執行SQL任務:「從HRESULT異常:0xC0015005」,而將值分配給變量「鍵」時發生錯誤。 任務失敗:CMD審計OnPreExecute
爲同一個包,我可以看到另一個錯誤是 SSIS包「package1.dtsx」的另一個運行開始。 錯誤:0xC001405B事件包錯誤:嘗試鎖定變量「User :: key」以進行讀取訪問時檢測到死鎖。經過16次嘗試並超時後無法獲取鎖定。 錯誤:0xC00291EA在事件包發生錯誤時,SQL任務:變量「User :: key」不存在。 錯誤:0xC0024107事件包錯誤:任務驗證期間出現錯誤。 警告:0x80019002在OnError:SSIS警告代碼DTS_W_MAXIMUMERRORCOUNTREACHED。執行方法成功,但引發的錯誤數(5)達到允許的最大值(1);導致失敗。當錯誤數量達到MaximumErrorCount中指定的數量時會發生這種情況。更改MaximumErrorCount或修復錯誤。 錯誤:測試時出現0x0:沒有結果行集與執行此查詢相關聯。 警告:0x80019002在OnError:SSIS警告代碼DTS_W_MAXIMUMERRORCOUNTREACHED。執行方法成功,但引發的錯誤數(5)達到允許的最大值(1);導致失敗。當錯誤數量達到MaximumErrorCount中指定的數量時會發生這種情況。更改MaximumErrorCount或修正錯誤。*
請注意的是,用戶::關鍵變量已被定義