我试图弄清楚在将数据导入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执行此操作。
亲切的问候,
亚当
答案 0 :(得分:1)
单独使用平面文件源和连接管理器不能这样做。 有两种方法可以实现您的目标:
您可以使用脚本组件作为行的来源并处理文件,然后以编程方式对文件执行任何操作。
另一种方法是读取你的平面文件,将每一行视为一列(即不指定分隔符),然后,通过数据流转换,你将分割行,识别表名,拆分流等等上。
我强烈建议您使用脚本组件,即使您必须首先学习.NET,因为第二个选项将是一场噩梦:)。我使用平面文件源将文件中的行作为单列提取,并且它在脚本组件中工作,而不是直接读取“原始”文件。
这是一个可以帮助您入门的资源:http://furrukhbaig.wordpress.com/2012/02/28/processing-large-poorly-formatted-text-file-with-ssis-9/