SSIS - 将包变量添加到现有集合

时间:2018-06-06 01:49:09

标签: ssis

我有一个SSIS包,我将查询结果返回到集合中。 我的查询返回8列。例如:

     first name
     last name
     employee
     id
     city
     state
     zip
     hire-date

我正在迭代集合中的每个项目,并在For-each循环容器中进行一些操作。

我需要将第9个元素传递给集合,这是一个包变量。

 Example: Active_Flag 

我该怎么做?    我想的一种方法是在脚本任务中将集合读入数组并将第9个元素添加到其中。

我尝试了这个,但是这个集合无法读取它并且我不断获得

“错误:枚举器无法检索索引为”9“的元素。

我有什么想法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的问题有几种解决方法:

  • 三思而后行 - 你真的需要第9排吗?您正在使用Object变量上的 For-Each 循环进行迭代,将8行提取到包变量中并执行某些操作。将第9个包变量添加到循环逻辑和现有的8个变量似乎更容易,然后使用OLEDB集合重新打包Object变量。
  • 如果添加第9列对您更有意义,您可以在SQL查询中执行此操作。使用EvaluateAsExpression=trueExpression属性创建包变量类型String ="Select ..., '"+(DT_WSTR, 10)@[User::YourVariable]+"' AS [ninethcol] from ..."
    此示例添加字符串数据,您可以修改它以返回所需的数据类型 然后设置SQL任务,从变量中使用SQL Source提取数据。这将为查询注入第9列,内容灵活。