如何在SSIS中使用foreach循环容器更改平面文件路径
我的平面文件位于c:\ sourcefile文件的名称是“Flat(Date)” 例如Flat01aug2011.csv 并且它每天都是由最近的日期生成的,因此我需要始终拾取新文件并将其传递给Flat File目的地, 那么如何遍历文件夹并获取最近日期的新文件。???
答案 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?
希望有所帮助。
<强>更新强>
创建两个字符串数据类型变量,即DirPath
和FilePath
。将值C:\ backup \设置为变量DirPath
。不要为变量FilePath
设置任何值。
选择变量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)
答案 1 :(得分:1)
在SSIS中,您可以使用&#39; ForEach Loop&#39;容器并将枚举器设置为文件名。对于每个循环容器,都会获取可以提供文件夹位置和文件名格式和扩展名的属性。
使用foreach循环容器,您也可以根据文件名处理多个文件。
请参阅以下链接中的教程。 http://www.sql-programmers.com/SQLResources/SQLServerIntegrationServiceSSIS/ForEachLoopContainer.aspx