在OLE DB源中使用包变量

时间:2014-12-09 19:20:06

标签: ssis

在控制流程中,我在SSIS中创建了一个执行SQL任务。在“常规”选项卡中,在SQLStatement下,我可以编写查询。像这样:

select config_value from config_table where name ='ArchiveDays'

在参数映射选项卡中,我可以创建变量:User::ConfigValue

在“结果集”选项卡中,我有以下内容: https://dl.dropboxusercontent.com/u/12421846/ssis/result_Set.JPG

我可以毫无问题地运行执行数据流任务。

运行数据流后,如何检查变量中的值?

在控制流,数据流任务中,我有一个OLE DB源,我尝试使用创建的变量。查询解析,但我收到以下错误消息。

https://dl.dropboxusercontent.com/u/12421846/ssis/error_msg2.JPG

如何解决?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这不是你在SSIS中映射参数的方式。 Documentation对您的职业生涯有所帮助,在线图书是您的起点。

OLE DB源中的参数化是通过使用?来完成的,WHERE CAST(CreatedOn as date) < dateadd(DAY, ?, CURRENT_TIMESTAMP) 是一种基于零的有序替换方案。

您的查询需要重写才能使用参数。它也应该是re-written to not be lazy。像

这样的东西
@User::carepro_ConfigValue

这就是您在{{1}}

中映射的地方