如何在SSIS包中使用foreach循环容器更改平面文件源?

时间:2011-08-02 14:14:44

标签: ssis

如何在SSIS中使用foreach循环容器更改平面文件路径

我的平面文件位于c:\ sourcefile文件的名称是“Flat(Date)” 例如Flat01aug2011.csv 并且它每天都是由最近的日期生成的,因此我需要始终拾取新文件并将其传递给Flat File目的地, 那么如何遍历文件夹并获取最近日期的新文件。???

2 个答案:

答案 0 :(得分:3)

下面给出的链接中的示例显示了如何使用数据流任务循环遍历给定扩展的文件并将其加载到数据库中。

该示例加载.csv文件。该软件包使用Foreach loop container循环遍历文件,循环容器中有Data Flow task。数据流任务包含一个Flat文件源,它根据循环的文件而变化。这是通过更改平面文件连接管理器路径来完成的。

How do I move files to an archive folder after the files have been processed?

这是一个循环遍历给定目录中的目录列表并使用Script Task和Foreach循环容器选择最近创建的文件夹的示例。您需要使用类似的逻辑来选择最近创建的文件。

How do I pick the most recently created folder using Foreach loop container in SSIS package?

希望有所帮助。

<强>更新

创建两个字符串数据类型变量,即DirPathFilePath。将值C:\ backup \设置为变量DirPath。不要为变量FilePath设置任何值。

Variables

选择变量FilePath并选择F4以查看属性。将EvaluateAsExpression属性设置为 True 并将Expression属性设置为@[User::DirPath] + "Source" + (DT_STR, 4, 1252) DATEPART("yy" , GETDATE()) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2)

Expression

答案 1 :(得分:1)

在SSIS中,您可以使用&#39; ForEach Loop&#39;容器并将枚举器设置为文件名。对于每个循环容器,都会获取可以提供文件夹位置和文件名格式和扩展名的属性。

使用foreach循环容器,您也可以根据文件名处理多个文件。

请参阅以下链接中的教程。 http://www.sql-programmers.com/SQLResources/SQLServerIntegrationServiceSSIS/ForEachLoopContainer.aspx