Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查文件夹中是否存在文件(SSIS、SDT 2015和SQL 2016)_Sql_Ssis - Fatal编程技术网

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

检查文件夹中是否存在文件(SSIS、SDT 2015和SQL 2016),sql,ssis,Sql,Ssis,我需要将多个文件加载到一个SQL表中。我有三种不同的格式,CSV、XLSX和XLS,但我将一次加载一种类型的文件,而不是不同文件类型的组合 首先,我将在我的源文件夹中检查文件是否存在。若存在,则将其加载到表中并移动到下一个文件。文件检查和选择过程必须是动态的。我不想在变量中硬编码文件名。当包启动时,每次运行包时,我都需要filename变量来保存文件夹中的第一个文件 如果在文件夹中找不到该文件,请发送邮件通知该文件不存在 例如,如果我的文件夹中有三个文件 File1.csv File2.csv

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

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

如果在文件夹中找不到该文件,请发送邮件通知该文件不存在

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

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


下次运行for each循环时,它会查找变量filename=File1,但它已经存档,因此我的包将无法处理文件夹中的file2。如何正确执行此操作?

首先使用脚本任务检查文件夹中是否存在任何文件。创建一个整数变量,如果找到文件,则将其设置为1;如果未找到文件,则将其设置为0。在优先约束中使用表达式和约束。 如果计算表达式为false,请将其连接到邮件任务,否则 为每个循环任务连接到。
请参阅:或更多详细信息。

SSIS中的一个技巧是创建Foreach循环

创建一个包含文件所在路径的变量。示例用户::文件路径 创建另一个变量以保存在Foreach循环中找到的实际文件,例如User::filename

从SSIS工具箱中添加Foreach循环

在Foreach循环编辑器上,在集合左侧选项卡上选择in Enumerator-Foreach File Enumerator

单击表达式并为属性目录添加一个表达式,然后在表达式中选择@[User::filepath]

在文件夹中输入filepath变量的值。如果在运行时更改filepath,则在执行时将从上面的表达式中覆盖该变量

在文件中输入类似的内容。或*.txt或任何要应用于文件夹的筛选器

在变量映射左侧选项卡上,在变量列上选择User::filename变量,索引列将默认为0

然后将逻辑放入Foreach循环框中

这将仅在找到文件时执行您的逻辑。如果文件夹中存在多个文件,您也可以使用此选项处理这些文件


希望这有帮助

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

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

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

LEN@[User::filePath]>0?对:错

filePath=Foreach Lop容器变量

stackoverflow文档从文件夹加载多个相同格式的CSV文件