我有一个tSQL标量值函数
ALTER FUNCTION [dbo].[MyDB_GetJobId]
(
)
RETURNS [uniqueidentifier]
其结果需要进入SSIS用户变量vJobId
,声明为String
。
SqlStatementSource是EXEC ? = dbo.MyDB_GetJobId()
;结果集如下:Result Name
:0; Variable Name
:User::vJobId
。
它不起作用,错误信息如下
"EXEC ? = dbo.MyDB_GetJobId()" failed with the following error: "No value given for one or more required parameters.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
连接正常(一个普通的SQL请求运行正常),没有输入参数,......你能帮忙吗?感谢。
答案 0 :(得分:14)
我最初试图使用带有Return方向的参数映射,但这是不正确的。
相反,我的Execute SQL Task配置如图所示。我的ResultSet
是“单行”。我的SQLStatement
只是“SELECT dbo.MyDB_GetJobID()”
在结果集选项卡中,由于这是单行的ResultSet类型,因此我们为每列提供基于零的序数系统的映射。
这是一个演示将结果分配给变量User::SingleRow
的示例。您可以忽略Other
,因为我试图通过参数映射选项卡使其工作。