数据流任务 - 设置两个用户日期变量作为参数

问题描述 投票:0回答:1

我正在创建一个每月都会运行的SSIS包。 由于返回的数据量非常大,所以这个特殊的存储过程每次需要运行一周。

我设置了两个参数的存储过程。@StartDT和@EndDT。 我创建了两个SSIS变量。StartDT和Wk1EndDT(一旦我把这个变量弄好了,我将创建其他周的开始和结束日期)。

StartDT有这样的表达式。

(DT_DATE)((DT_WSTR, 4)YEAR(DATEADD("mm", -1, GETDATE())) + "-" +RIGHT("0" + (DT_WSTR,2)MONTH(DATEADD("mm", -1, GETDATE())),2)+"-01")

Wk1EndDT有这样的表达式。

DATEADD("DD",7, @[User::StartDT])

我使用的是DataFlow任务,SQL命令文本为:

EXECUTE dbo.uspUploadWk1 ?,?

当我去预览结果时,我收到以下错误信息:有一个错误显示预览.没有为一个或多个所需参数给出值。(Microsoft SQL Server Native Client 11.0)

我的参数是这样设置的。Parameters

我不知道为什么不能正常工作。 我找遍了所有地方,都没有找到答案。 我使用的是Visual Studio 2015。

ssis parameter-passing
1个回答
1
投票

假设使用OLE DB连接管理器,Mappings选项卡应该在参数列上使用基于零的序数系统。是的,它默认将它们命名为Parameter0、Parameter1等,但对于OLE DB连接管理器,你将使用问号的序数位置。?,从零开始。

对于ODBC,它变成了基于1的计数,但仍然使用 ? 作为参数占位符。

ADO.NET使用命名的参数,所以我们会将这些参数与 EXECUTE dbo.uspUploadWk1 @Parameter0, @Parameter1 但ADO.NET源组件不支持参数化。

参数和映射参考 但对于数据流任务组件来说,语法仍然是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.