我有以下情况: 我需要在SSIS中创建一个项目,将一些数据从csv导入到我们的系统中,但为了做到这一点,我必须阅读一些列,其中一列是值的“组”。 计划范围和这个范围的价值是否可以改变每个过程,因此一些过程可以是5个月,其他过程可以是15个月。
文件(csv)将始终填充21列,但在(22,23 ...)之后我不知道是否有1,2列或更多列(地平线)。
在这种情况下,我不能在“脚本转换编辑”的“输入和列”中创建列,我需要根据地平线的长度进行创建。
所以,我的问题是否有可能在运行时创建一个列,当我发现地平线的长度时。
此致
答案 0 :(得分:1)
SSIS无法正常工作。列数在设计时设置。
如果您可以设置合理的上限 - 比如说50列,您可以读入数据的最后一列,然后通过脚本组件将其解析为这些字段。否则,您正在查看预处理文件以将可变宽度行取消转换为规范化集合。
答案 1 :(得分:1)
你可以用两种不同的方式做到这一点。
将列添加到脚本组件 https://msdn.microsoft.com/en-us/library/ms188192.aspx
添加派生列转换并添加带有相应表达式的自定义列。
答案 2 :(得分:0)
获取所有答案。我改变了我的愿景以创造不同的东西 我使用脚本转换来检查:
我包含一个执行Sql任务来调用一个过程来执行所有逻辑来填充列。
此致