我看到了类似的问题,但没有解决我的具体需求。我有一个SSIS包,其中包含一个带文件枚举器的For Each循环和一个匹配日期时间的文件的模式匹配,如下所示:
bookreview_daily _ * .txt
匹配一个文件,例如:
bookreview_daily_2016_06_30.txt。目前,我必须从最早的日期开始逐个处理每个文件。我希望能够遍历文件夹并处理每个文件,从最旧的文件开始。如果我有以下文件:
bookreview_daily_2016_06_30.txt
bookreview_daily_2016_07_01.txt
bookreview_daily_2016_07_02.txt
首先应处理名为bookreview_daily_2016_06_30.txt的文件,然后处理文件bookreview_daily_2016_07_01.txt,然后将bookreview_daily_2016_07_02.txt作为要处理的最后一个文件。是否有一种干净,有效的方法来实现这一目标?
答案 0 :(得分:0)
我们可以使用脚本任务来实现这一目标。
我们也可以在脚本中使用数组概念来实现它。
答案 1 :(得分:0)
这可以使用SSIS的脚本任务转换来实现。
正如上面的用户指出逻辑的关键是读取文件名,获取集合中的datetime部分和完整文件名,对集合进行排序,然后将其分配给对象变量。在Foreach循环变换中使用此变量以按所需顺序读取文件。
我已经创建了一篇博文,其中包括博客文章中所需的逻辑 - Reading DateTime Stamped flat files进一步详细说明。
答案 2 :(得分:0)
如果要不使用脚本任务就可以实现这一点,请尝试以下步骤。