【问题标题】:The data type of object variable is not supported in an expression in ssisssis 中的表达式不支持对象变量的数据类型
【发布时间】:2020-02-26 17:01:28
【问题描述】:

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

谢谢

【问题讨论】:

  • 先将两者都转换为 DT_STR?然后使用表达式来组合连接字符串属性的变量和文件名。由于您没有提供具体信息,因此很难给出详细的答案。

标签: sql sql-server ssis etl foreach-loop-container


【解决方案1】:

将每个 id 传递给 foreach 循环容器我正在创建 CSV 文件。我希望 CSV 文件名是唯一的

您不必更改存储整个 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"

有用的链接

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多