【问题标题】:Jet DB Engine - SSIS OLEDBERROR - Unexpected error from external database driver (1)Jet DB 引擎 - SSIS OLEDBERROR - 来自外部数据库驱动程序的意外错误 (1)
【发布时间】:2017-10-13 05:34:33
【问题描述】:

由于以下 SSIS 错误,我在 DEV 服务器中托管的 SSIS 作业失败

Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft JET Database Engine"  Hresult: 0x80004005  Description: "Unexpected error from external database driver (1).".

在我的 SSIS 包 -> 数据流任务中,我将源用作 SQL 服务器,将目标用作 Excel。 Excel 版本为 97-2003(xls 格式),连接详情为:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={mypath}\filename.xls;Extended Properties="EXCEL 8.0;HDR=YES";

它按计划每隔一小时成功运行一次。

当数据库实例停止 Windows 修补和 在修补完成后开始

我在服务器中遇到了这个问题。我已经检查了 Stack Overflow 中的其他解决方案。它主要是基于尺寸讨论的。就我而言,SSIS 工作从未改变。我相信这是由于 Jet 引擎驱动程序级别的问题。我更多的是寻找驱动程序级别检查而不是 ssis 作业级别代码更改,因为代码从未更改并且没有发生大数据流。

【问题讨论】:

  • 我在 SQL Server 2016 上看到了同样的问题。看起来它是在 10 月 11 日安装 KB2553338 时服务器重新启动后开始发生的。我们的 Access Database Engine 2010 似乎也已在该日期由 Windows Update 更新/安装(可能是更新它的这个 KB)。

标签: ssis excel-2003 oledbexception


【解决方案1】:

在应用 wsus 更新后切换到集群的第二个节点后对我来说也是如此。好像和上次更新有关。

我提交了一个连接错误:https://connect.microsoft.com/SQLServer/feedback/details/3142556

刚刚卸载: KB 4040685(这也在我的工作站上) 知识库 4041693 知识库 4041687

现在一切正常!

【讨论】:

  • 我已投票支持您对 Microsoft Connect 的反馈报告。这里有同样的问题。也许是时候将我们的旧 .xls 报告更新为 .xlsx 了……仍然很烦人,微软用另一个拙劣的 Windows 更新破坏了这个功能。
  • 嗨,克里斯托夫,是的。我已经卸载了更新,问题现在得到了解决。这一切都与微软的安全更新补丁有关。谢谢你的回答。
【解决方案2】:

这里也一样。将更新应用到服务器后,使用 Excel 97 - 2003 格式的包失败。

我们必须将每个连接切换到 2007 以使程序包能够在服务器上运行。

【讨论】:

  • 嗨@Malice345,将每个连接更改为Excel 2007+ 对您有用吗?我们在项目中使用 OLE DB 源和目标。您使用了哪些工具?我们正在从 SQL Server 2016 升级到 Excel 2010。
  • 使用 Excel 目标 - 必须重新映射列,但除此之外没有问题。不会删除 Windows 更新,因为该问题不再影响我们。
【解决方案3】:

推荐的最佳解决方案是迁移到 Microsoft ACE OLE DB 提供程序。

Microsoft 正在制定解决方案,并将在即将发布的安全补丁中提供更新。预计将在另外 2-3 周或更早的时间内提供。

More info...

【讨论】:

    【解决方案4】:

    我安装了 Access Database Engine Tools 2010,之后我将 Excelversion 从 2003 更改为 2007。然后我再次可以从 XLS 文件中执行我的提取包,而无需卸载 KB 的 BR 安妮特

    【讨论】:

      【解决方案5】:

      将每个数据源从“Provider=Microsoft.Jet.OLEDB.4.0”更改为“Provider=Microsoft.Jet.OLEDB.12.0”

      安装更新时会出现此错误:KB4040685、KB4041693、KB4041687

      【讨论】:

        【解决方案6】:

        在我的例子中——我们有一堆使用旧版本 excel 的包。 如果不通过 SDLC 过程,升级/修改包不是解决方案。

        临时解决办法 - 我们卸载了安全补丁 - KB4041679 和 KB4041690,一切都开始工作了。

        首先,我们确实卸载了 KB 4040685,但问题仍然存在。

        我们正在使用 Microsoft Jet 4.0 OLE DB Provider 从 Excel(.XLS) 文件中读取数据。

        谢谢, 斯里

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-17
          • 2018-03-24
          • 2018-03-24
          • 2012-05-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多