如何在SSIS中使用脚本组件创建列?

时间:2016-12-13 16:33:25

标签: c# sql-server ssis ssis-2008

我有以下情况: 我需要在SSIS中创建一个项目,将一些数据从csv导入到我们的系统中,但为了做到这一点,我必须阅读一些列,其中一列是值的“组”。 计划范围和这个范围的价值是否可以改变每个过程,因此一些过程可以是5个月,其他过程可以是15个月。

文件(csv)将始终填充21列,但在(22,23 ...)之后我不知道是否有1,2列或更多列(地平线)。

在这种情况下,我不能在“脚本转换编辑”的“输入和列”中创建列,我需要根据地平线的长度进行创建。

所以,我的问题是否有可能在运行时创建一个列,当我发现地平线的长度时。

此致

3 个答案:

答案 0 :(得分:1)

SSIS无法正常工作。列数在设计时设置。

如果您可以设置合理的上限 - 比如说50列,您可以读入数据的最后一列,然后通过脚本组件将其解析为这些字段。否则,您正在查看预处理文件以将可变宽度行取消转换为规范化集合。

答案 1 :(得分:1)

你可以用两种不同的方式做到这一点。

  1. 将列添加到脚本组件 https://msdn.microsoft.com/en-us/library/ms188192.aspx

  2. 添加派生列转换并添加带有相应表达式的自定义列。

答案 2 :(得分:0)

获取所有答案。我改变了我的愿景以创造不同的东西 我使用脚本转换来检查:

  1. 我需要创建多少列;
  2. 打开连接并删除地平线列;
  3. 再次创建基于新视野的列;
  4. 我包含一个执行Sql任务来调用一个过程来执行所有逻辑来填充列。

    此致