【问题标题】:How to change flat file source using foreach loop container in an SSIS package?如何使用 SSIS 包中的 foreach 循环容器更改平面文件源?
【发布时间】:2011-08-02 14:14:43
【问题描述】:

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

我有一个位于 c:\sourcefile 下的平面文件,该文件的名称是“Flat(Date)” 例如 Flat01aug2011.csv 并且每天它都是由最近的日期生成的,所以我需要总是拿起新文件并将其传递给平面文件目标, 那么我怎样才能遍历文件夹并获取最近日期的新文件.???

【问题讨论】:

    标签: ssis


    【解决方案1】:

    以下给定链接中的示例显示了如何循环访问给定扩展名的文件并使用数据流任务将它们加载到数据库中。

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

    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设置任何值。

    选择变量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)

    【讨论】:

    • 嗨 Siva 感谢您提供链接,但我想知道如何获取名称为 FlatFile(TodayDate) 的最新文件
    • 请问如何使用 SSIS 表达式生成器格式化日期“2011-08-11”? IE。像“source 2011-08-11”这样的文件名我确实喜欢创建了一个具有文件夹路径的变量:C\backup\ 现在在表达式生成器中如何添加日期?我试过@[User::DirPath]+"source"+ (DT_STR,4,1252)YEAR(DATEADD("dd", -1, getdate()))+"-"+(DT_STR,4,1252) MONTH( DATEADD( "dd",-1, getdate() ))+"-"+(DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() )) +".CSV" 其中错了,请给我输出的表达式:“source 2011-08-11”
    【解决方案2】:

    在 SSIS 中,您可以使用“ForEach Loop”容器并将枚举器设置为文件名。对于每个循环容器都有属性,您可以在其中提供文件夹位置和文件名格式和扩展名。

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

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

    【讨论】:

    • 谢谢,但是我怎样才能得到像 FlatFile(TodayDate) 这样的最新文件
    • 然后使用表达式来指定文件名,而不是将文件名预先设置为 foreach 循环容器属性。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多