【问题标题】:Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E37
【发布时间】:2021-11-07 21:09:41
【问题描述】:

我知道其他人已经发布了类似的错误并得到了多个答案/解决方案,这些都不适合我。我也是新手,所以这是我的情况:

所以我创建了一个包,其中包含一个 foreachloop 和一个数据任务流。我有一个包含 20 个 excel 文件的源。整个事情运行得很好。我完成了项目部署并在我的 sql server 上设置了一个工作代理。为了确保工作代理运行正常,我截断了数据库中的表。当我手动开始这项工作时,它没有按预期填充表格。我回到 SSIS 包中发现了这些错误消息:

enter image description here

[Excel 源 ProspectFiles [182]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码: 0x80040E37.

[Excel Source ProspectFiles [182]] 错误:为 “Sheet1$”失败。检查对象是否存在于数据库中。

[SSIS.Pipeline] 错误:“Excel Source ProspectFiles”验证失败 并返回验证状态“VS_ISBROKEN”。

好吧,似乎 foreachloop 不是运行所有的 excel 文件,而是只运行第一个文件。

enter image description here

【问题讨论】:

    标签: sql-server excel ssis foreach-loop-container


    【解决方案1】:

    您的 Excel 连接管理器必须使用变量来引用循环正在更新的文件的名称。检查该变量的默认值是否仍然有效。

    此外,如果您在自己的机器上开发了包,然后将其部署到另一台服务器上,则该包不再在您的机器上查找文件,而是在您将包部署到的服务器上查找。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      相关资源
      最近更新 更多