【问题标题】:The ForEach Loop Enumerator is Empty - SSIS Error when executing through CMD via VBAForEach 循环枚举器为空 - 通过 VBA 通过 CMD 执行时出现 SSIS 错误
【发布时间】:2014-09-22 13:48:34
【问题描述】:

我目前正在开发一个通过 VBA (Access) 通过 CMD 触发的 SSIS 包。这个包所做的只是从一个文件夹中读取一堆文件并将它们上传到 SQL Server 中的一个表中。棘手的部分是包从中读取文件的文件夹位置是动态的。感谢 STACKOVERFLOW,我想出了一种使其动态化的方法,并且当从 MS VS2008 执行时,该包运行良好。

FUN PART : 作为完成链条的最后一环,我在 cmd 中使用了以下内容

dtexec \f "C:\Desktop\SSISAppend.dtsx" /Set "\Package.Variables[User::Directory].Property[Value];C:\Desktop\AppendFiles"

抛出一个错误: 代码:0x8001C004 说明:For Each File 枚举器为空。 For Each File 枚举器没有找到任何符合文件模式的文件,或者指定的目录为空。

我使用了以下变量: 在 ForEachfile 枚举器中针对 COLLECTION>>EXPRESSIONS 中的 DIRECTORY 的“目录”, 变量映射中的“FilePath”(索引为 0)

当通过 MS VS2008 执行时,包运行良好,并且在变量 DIRECTORY 中提到了水位置。

感谢所有帮助,如果您需要更多信息,请告诉我。

【问题讨论】:

  • 运行包的用户对该文件夹是否有足够的权限?
  • 是的,用户拥有对该文件夹的读/写权限,事实上,当直接从 SSIS (MS VS) 执行时,包运行良好,但尝试从 CMD 执行时会出现问题

标签: sql-server vba ms-access ssis ssis-2008


【解决方案1】:

关于通过 Access/CMD 获得的权限,与@Joost 评论的思路相同。

也许你可以在启动 CMD 时尝试使用 RUNAS。

使用 RUNAS 命令 http://technet.microsoft.com/en-us/library/cc771525.aspx

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多