SSIS表达式任务无法查看包含foreach循环填充的变量

时间:2013-03-15 19:18:08

标签: sql-server-2012 ssis-2012

我正在尝试从目录中收集文件路径列表,将它们连接在一起,然后将该值发送到执行流程任务。为此,我正在使用一个带有表达式任务的ForEach循环,它应该填充从循环的每次迭代到变量的路径。问题是当表达式任务运行时,它会抛出以下错误。

Error: The type of the value (Empty) being assigned to variable "User::CombinedPath"
differs from the current variable type (String). Variables may not change type
during execution. Variable types are strict, except for variables of type Object.

表达式任务基本上是这样做的:

@[User::PathFromForEach] + ";"

然而,看来@ [User :: PathFromForEach]是空的。

这里发生了什么?

1 个答案:

答案 0 :(得分:2)

我猜你已经将Expression任务的ExecValueVariable属性设置为变量@ [User :: CombinedPath]。嗯,这不是正确的地方。您需要将changeExecValueVariable恢复为None,并将表达式写为:

@[User::CombinedPath]=@[User::PathFromForEach] + ";"

多数民众赞成,我们只需要使用Expression属性,没有别的。 “表达式”属性是变量实际获取值的位置。我想最好调用属性“Assignment”而不是“Expression”。