我需要将多个文件加载到 SQL 表中。我有三种不同的格式,CSV、XLSX 和 XLS,但我会一次加载一种类型的文件,不组合不同的文件类型。
首先,如果文件存在或不存在,我将检查我的源文件夹。如果存在,将其加载到表中并移动到下一个文件。文件检查和选择过程必须是动态的。我不想在变量中硬编码文件名。当包启动时,每次运行包时,我都需要文件名变量来保存文件夹中存在的第一个文件。
如果在文件夹中找不到该文件,请发送该文件不存在的邮件警报。
例如,如果我的文件夹中有三个文件,
File1.csv
File2.csv
File3.csv
我运行我的包并在第一次运行时硬编码文件名 variable = File1.csv
。我的包成功执行并将 file1 加载到表中并将其存档到存档文件夹。
下次运行每个循环时,它会查找变量 filename = File1,但它已经存档,因此我的包将无法处理文件夹中的 file2。我怎样才能正确地做到这一点?
原文由 user3663808 发布,翻译遵循 CC BY-SA 4.0 许可协议
Foreach 循环容器的问题是它不会处理容器内的任何任务,但会在容器外继续。
解决方案是对下一个任务的约束的表达式。
在此处输入图像描述
它将检查 Foreach 循环容器中使用的可变长度。如果文件不存在,则表达式将返回 0 和 FALSE。
LEN(@[User::filePath]) > 0 ?真假
filePath = Foreach Lop 容器变量
在此处输入图像描述