ssis中的表达式不支持对象变量的数据类型

The data type of object variable is not supported in an expression in ssis

我正在使用 sql 任务检索 ID 列表并将其存储在对象变量中。将每个 id 传递给 foreach 循环容器我正在创建 csv 文件。我希望 csv 文件名是唯一的。 我们如何将变量中的 id 附加到 csv 文件名?

谢谢

Passing each id to foreach loop container I am creating CSV files. I want the CSV file name to be unique

您不必更改存储整个 id 列表的对象变量,因为 foreach 循环将当前 id 值映射到一个变量(容器编辑器中的“变量映射”选项卡),您可以创建另一个变量被评估为表达式以生成唯一名称。例如,考虑 @[User::CurrentID] 是在 foreach 循环中存储当前 id 的变量。创建另一个字符串类型的变量并使用类似的表达式对其求值:

"D:\MyCSV_" + (DT_WSTR,50)@[User::CurrentID] + ".csv"

请注意,必须使用表达式评估平面文件连接管理器连接字符串才能从此变量读取。

如果 @[User::CurrentID] 是字符串类型,您可以在 foreach 循环容器中添加一个表达式任务,以使用类似的表达式更改其值:

@[User::CurrentID] = "D:\MyCSV_" + @[User::CurrentID] + ".csv"

有用的链接