在SSIS中使用多个表处理csv文件

时间:2013-05-23 15:36:41

标签: ssis

我试图弄清楚在将数据导入SQL之前是否可以在SSIS中预处理CSV文件。

我目前在一个平面文件中收到一个包含8个具有不同结构的表的文件。

表由一行表示,其中表名由Square Brackets封装,即[DOL_PROD]

数据位于标准CSV格式下方。首先是标题然后是数据。

表格用空行拆分,然后为接下来的7个表重复该过程。

[DOL_CONSUME]
TP Ref,Item Code,Description,Qty,Serial,Consume_Ref
12345,abc,xxxxxxxxx,4,123456789,abc

[DOL_ENGPD]
TP Ref,EquipLoc,BackClyLoc,EngineerCom,Changed,NewName

将它拆分成单独的CSV文件是否可行?或者循环处理?

我真的希望能够自动使用SSIS执行此操作。

亲切的问候,

亚当

1 个答案:

答案 0 :(得分:1)

单独使用平面文件源和连接管理器不能这样做。 有两种方法可以实现您的目标:

您可以使用脚本组件作为行的来源并处理文件,然后以编程方式对文件执行任何操作。

enter image description here

另一种方法是读取你的平面文件,将每一行视为一列(即不指定分隔符),然后,通过数据流转换,你将分割行,识别表名,拆分流等等上。

我强烈建议您使用脚本组件,即使您必须首先学习.NET,因为第二个选项将是一场噩梦:)。我使用平面文件源将文件中的行作为单列提取,并且它在脚本组件中工作,而不是直接读取“原始”文件。

这是一个可以帮助您入门的资源:http://furrukhbaig.wordpress.com/2012/02/28/processing-large-poorly-formatted-text-file-with-ssis-9/