我有这样的情形中,从程序得到一个输出值:传递一个值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或修正错误。*
请注意的是,用户::关键变量已被定义