我每天大约有20个TXT文件,它们的名称和结构不同。
Files Names --> Table Names
-----------------------------------------------------
Tbl-Sales-yymmdd-hhmmss.TXT --> Table-Sales
Tbl-Customers-yymmdd-hhmmss.TXT --> Table-Customers
我需要创建一个SSIS包来将这些TXT文件导入到SQL表中。我尝试了多个Foreach循环容器,但是第一个容器完成后,其余的返回空枚举器并跳过里面的所有任务。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
我假设您的Table-Sales
和Table-Customers
表具有不同的列集合。这意味着每个目标表必须至少有一个数据流任务:每个目标表都需要自己的一组列映射。
这样做的困难在于,随着源文件的日期和时间戳发生变化,您可能不希望必须更改每个平面文件连接以指向正确的源文本文件。
处理这种情况的最简单方法是标准化您的文件名,在这个意义上:将Tbl-Sales-yymmdd-hhmmss.TXT
复制到另一个专用目录Table-Sales.txt
中名为Tbl-Customers-yymmdd-hhmmss.TXT
的文件中Table-Customers.txt
位于同一个专用目录中,并设置所有平面文件连接管理器(因为每个源文件类型可能需要一个)以指向专用目录中的文件。然后你将有一个SSIS包,不需要自定义编程或搞乱变量:只要文件在那里,它将执行而无需进一步干预。
您可以使用SSIS将带时间戳的文件复制到正确的目标文件名,或者使用一些代码或(可能)使用旧式.bat文件。有很多方法。