SSIS - 清理CSV

时间:2013-06-27 15:02:58

标签: ssis

我在SSIS中创建了一些基于4个sql查询创建csv文件的东西。它使用一系列排序和合并来以正确的格式返回(似乎是)一个csv。但是,行中的尾随逗号不是最长行的长度。具有数据的最短行仅为1列,而最长的行为约46.因此,1列行具有45个逗号以匹配最长行。

需要生成此CSV文件并定期发送给第三方供应商。

如何清理逗号?有没有办法在SSIS中执行VB或C#代码,它会遍历每一行并清除所有逗号?

1 个答案:

答案 0 :(得分:0)

首先:为什么你需要删除逗号? CSV表示(在其核心)可能是等效数据的单个数据集。因此,1列线和46列线应该是相似的实体,并且45个空白值完全有效。如果它们不是相似的实体,为什么它们在同一个CSV中?

据说,只是删除逗号,因为你暗示你对.Net感到满意,你想要的是Script Task

在创建CSV的数据流之后,创建一个脚本任务:

  1. 打开生成的CSV。
  2. 循环读取行。
  3. 删除所有尾随逗号。
  4. 将该行写入字符串缓冲区。
  5. 将字符串缓冲区转储到最后的文件中。
  6. 或者,您可以创建执行相同任务的批处理文件或可执行文件,然后将Execute Process task与CSV一起用作参数。