检查文件夹中是否存在文件(SSIS、SDT 2015 和 SQL 2016)

新手上路,请多包涵

我需要将多个文件加载到 SQL 表中。我有三种不同的格式,CSV、XLSX 和 XLS,但我会一次加载一种类型的文件,不组合不同的文件类型。

首先,如果文件存在或不存在,我将检查我的源文件夹。如果存在,将其加载到表中并移动到下一个文件。文件检查和选择过程必须是动态的。我不想在变量中硬编码文件名。当包启动时,每次运行包时,我都需要文件名变量来保存文件夹中存在的第一个文件。

如果在文件夹中找不到该文件,请发送该文件不存在的邮件警报。

例如,如果我的文件夹中有三个文件,

 File1.csv
File2.csv
File3.csv

我运行我的包并在第一次运行时硬编码文件名 variable = File1.csv 。我的包成功执行并将 file1 加载到表中并将其存档到存档文件夹。

下次运行每个循环时,它会查找变量 filename = File1,但它已经存档,因此我的包将无法处理文件夹中的 file2。我怎样才能正确地做到这一点?

原文由 user3663808 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 586
1 个回答

Foreach 循环容器的问题是它不会处理容器内的任何任务,但会在容器外继续。

解决方案是对下一个任务的约束的表达式。

在此处输入图像描述

它将检查 Foreach 循环容器中使用的可变长度。如果文件不存在,则表达式将返回 0 和 FALSE。

LEN(@[User::filePath]) > 0 ?真假

filePath = Foreach Lop 容器变量

在此处输入图像描述

原文由 user2996868 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进