2013-04-27 114 views
0

我每天有大约20个TXT文件,并且具有不同的名称和结构。SSIS将多个平面文件导入到多个表格

Files Names --> Table Names 
----------------------------------------------------- 
Tbl-Sales-yymmdd-hhmmss.TXT --> Table-Sales 
Tbl-Customers-yymmdd-hhmmss.TXT --> Table-Customers 

我需要创建一个SSIS包来将这些TXT文件导入到SQL表中。我已经尝试了多个Foreach循环容器,但是一旦第一个容器完成,其余的将返回空枚举器并跳过里面的所有任务。任何帮助,将不胜感激。谢谢。

回答

0

我假设你的Table-SalesTable-Customers表具有不同的列集合。这意味着每个目标表必须至少有一个数据流任务:每个目标表都需要自己的一组列映射。

这样做的困难在于,随着源文件上的日期和时间戳发生更改,您可能不希望将每个平面文件连接更改为指向正确的源文本文件。

处理的情况是标准化你的文件名,在这个意义上说,最简单的方法:复制Tbl-Sales-yymmdd-hhmmss.TXT到一个文件在同一专用目录调用不同的专用目录Table-Sales.txtTbl-Customers-yymmdd-hhmmss.TXTTable-Customers.txt,并设置所有您的平面文件连接管理器(因为您可能需要每个源文件类型一个)指向专用目录中的文件。然后你将得到一个SSIS包,它不需要自定义编程或者变换变量:只要文件在那里,它就会在没有进一步干预的情况下执行。

您可能可以使用SSIS将时间戳文件复制到正确的目标文件名中,或者使用一些代码或(可能)使用旧式.bat文件进行复制。有很多方法。