SSIS:For Each File 枚举器为空

Posted

技术标签:

【中文标题】SSIS:For Each File 枚举器为空【英文标题】:SSIS: The For Each File enumerator is empty 【发布时间】:2018-02-08 17:44:07 【问题描述】:

我创建了一个在 Visual Studio 中运行良好的包。 该包使用 for each file 循环,并且变量指向这样的文件夹:

C:\用户\桌面\文件夹\

但是,一旦我在 SSMS 上部署包,当我执行包时,我会收到以下错误:

Foreach 文件夹中的文件:警告:For Each 文件枚举器为空。 For Each File 枚举器未找到任何与 文件模式,或指定目录为空

为什么我在 SSMS 中收到此警告,但在 VS 中却运行良好?

注意:SQL Server 未托管在我的本地计算机上。

【问题讨论】:

【参考方案1】:

如果你使用文件夹的本地路径,像这样

C:\用户\桌面\文件夹\

然后,当您在 SQL Server 上运行包时,文件需要位于 SQL Server 上的 LOCAL PATH 中。

当您在 Visual Studio 中运行它时,它会在您机器上的本地路径中查找文件。

【讨论】:

这是有道理的。那么当我在我的 SQL Server 上部署一个包时,该包的范围现在是在 SQL Server 的安装范围内吗?如果我想让我的包在其他地方运行,它需要在另一台始终运行的机器上运行包? 是的,完全正确。如果您想从 SQL Server 以外的机器获取文件,则需要共享文件夹,确保 SQL 用户具有权限,并使用 UNC 路径而不是本地路径。 非常感谢您对此的解释。 SSIS 一直很难学。 如何让这个包从客户端机器上动态拉取?我试着查了一下,但我似乎无法得到明确的答案。 使用包变量作为路径。如果您尝试过此操作并遇到错误,您应该创建一个新问题并发布您所做的以及您遇到的错误。

以上是关于SSIS:For Each File 枚举器为空的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 SSIS 中抑制“对于每个文件的枚举器为空”警告吗?

在 SSIS 中使用 For Each Loop 容器时如何检查点

无法在 SSIS 2017 中的 excel 连接管理器上使用表达式

如何在xsl中检查for-each是否为空?

for in& for each in &for of

在 SSIS 中,如何在 Foreach NodeList 枚举器中使用 XPATH 循环遍历特定元素内的 XML