0

我一直在互联网上搜索我认为可以直接回答的问题。希望大家帮忙?

我正在使用每个循环来查找特定文件并将它们与文件系统任务一起移动到不同的文件夹。

假设我有 10 个 csv 文件。称为列出的 A 到 J

我只想移动 a、e 和 j,但似乎无法让 foreachloop 寻找该组。

在枚举器文件文本框中,我尝试插入由各种分隔符分隔的 3 个文件名,但 SSIS 认为它全部是一个特定文件,并且 3 个都没有移动。

有人可以建议如何完成吗?只是为了确认,我不使用通配符逻辑只是一组特定的文件名 - 类似于 SQL 查询的 IN 函数

提前致谢

现在添加了 img - 请告知如何在带有箭头的文本框中选择 3 个特定文件

4

1 回答 1

1

由于 OP 无法继续我的评论,我将更详细地解释一下 -

  1. 使用 anEXECUTE SQL TASK将所需文件的名称转储到 SSIS 对象中(为此,您可以使用存储过程或 SQL 查询)。之前在变量选项卡中创建一个对象类型变量,更改EXECUTE SQL TASKto中的输出Full Result Set并将结果映射到您刚刚创建的对象。现在这个对象保存了你需要循环遍历的文件列表。
  2. 现在从 SSIS 工具箱中拖放一个 ForEach 容器。它应该配置为 aForEach ADO Enumerator并将对象映射到它。创建另一个字符串类型的变量,该变量将在 ForEach 容器的每次迭代后保存文件名。Variables在 ForEach 容器的选项卡中也映射它。
  3. 现在,File System Task将用于移动这些文件的文件放入 ForEach 循环中。使用您创建的文件名变量来移动所需的文件。

现在,如果您不确定在步骤 1 中为您的案例使用什么 SQL 查询来获取 3 个文件名 -

SELECT 'A.csv'
UNION
SELECT 'E.csv'
UNION 
SELECT 'J.csv'
于 2016-05-01T05:14:38.577 回答