OLE DB 提供程序 Microsoft.ACE.OLEDB.15.0 缺失

OLE DB provider Microsoft.ACE.OLEDB.15.0 Mssing

我已经部署了从 Microsoft Access 数据库获取数据的 SSIS 包。它在本地和服务器上都运行良好,我 运行 使用 DTESEX 32 位对其进行调试,但出现以下错误

请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.15.0 未注册。如果未安装 32 位驱动程序,运行 64 位模式下的软件包。错误代码:0x00000000。

我如何确保服务器上存在 OLE DB 提供程序 Microsoft.ACE.OLEDB.15.0

请尝试在服务器上安装 Access 2013 runtime,这应该可以使用该提供程序(至少在 32 位中)。

异常表示无法找到指定的 OLE DB 提供程序,可以通过标准 Access 安装或安装运行时来安装。

我尝试使用 SSMS 的导入向导将数据从 64 位 excel 文件导入 SQL,但遇到了这个错误:microsoft ace oledb 15.0 提供程序未在本地计算机上注册。

我的一位同事向我展示了使用 64 位导入向导而不是 SSMS 中的 32 位默认导入向导。这是我在 youtube 上发布的关于成功加载数据的简短视频

https://www.youtube.com/watch?v=aIs-vbaGSzg

根据@Gaurav Saneja 的回答,您可以使用 "SQL Server 2016 Import and Export Data (64-bit)"(在开始菜单中找到)。 SSMS 是 32 位的,因此它尝试加载 32 位版本的 DLL,但失败了,因为您(可能)安装了 64 位版本的 Office。

有些人推荐安装 AccessRuntime_x86_en-us.exe 来自 https://www.microsoft.com/en-us/download/details.aspx?id=39358 但是,对我来说,这失败并出现错误:

We can't install the 32-bit version of Office because we found the following 64-bit programs on your PC: -list of installed Office apps here-

在微软提供 64 位版本的 SSMS 之前,我们一直使用独立启动 64 位版本的数据导入向导的方法(如上所述)。

环境: 机器(64 位) 操作系统 Windows 10 Pro(64 位) Visual Studio 2017(32 位) Visual Studio 2017 (固态硬盘) (32 位) Office 2016(64 位)

试图在 SSIS 中使用 Excel。收到以下错误:当我在连接管理器中 select 2016 或 2013 时。待解决的问题。 2016 年错误:

Exception from HRESULT: 0xC020801C Error at Package: The requested OLE DB provider Microsoft.ACE.OLEDB.16.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode. Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

Error at Data Flow Task [Excel Source [2]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209302. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

2013 年错误:

Exception from HRESULT: 0xC020801C Error at Package: The requested OLE DB provider Microsoft.ACE.OLEDB.15.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode. Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

Error at Data Flow Task [Excel Source [2]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209302. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

解法: 安装了以下内容: 我需要 64 位 Access Database Engine 2016 Redistribution 用于项目的另一部分。卸载它不是解决方案,但 2007 数据连接组件和数据访问引擎 2016 可以并存: 2007 (USE 32bit) : 2007 Office System Driver Data Connectivity Components https://www.microsoft.com/en-us/download/details.aspx?id=23734

2016(使用 64 位):Microsoft Access 数据库引擎 2016 Redistributable https://www.microsoft.com/en-us/download/details.aspx?id=54920 最后: 在 Visual Studio 2017 (SSDT) 中按照以下说明调整项目:

  1. 打开 SSIS 项目
  2. Select 解决方案资源管理器中的项目
  3. Select 属性
  4. 在左窗格中展开配置属性
  5. 单击调试并将 Run64BitRuntime 更改为 False
  6. 点击确定

调整连接管理器: 7. 打开 Excel 连接管理器 8. 单击下拉菜单。 Excel 选项 work:Excel 97-2003 和 Excel 2007-2010 9. 点击确定

打开Excel源组件: 10. Select Excel 连接管理器 11. Select Table 从数据访问模式查看 12.SelectExcelSheet

您应该可以预览 Excel sheet

中的数据