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 容器时如何检查点