首页 > 解决方案 > 请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册(SSIS 从 Access 源填充 SQL 表)

问题描述

我上周使用指南创建了一个 SSIS 包(我的第一个包),它正确解析并填充了我的 SQL 表。然后我参考了另一个指南来创建一个自动更新这个表的工作,但是我今天早上发现这个工作已经失败了。我导出了日志,下面是错误。有人可以帮我找出问题所在吗?我认为这可能是需要安装 Microsoft.ACE.OLEDB.12.0,但我真的不知道。我最初选中了该框以在 32 位运行时运行,但它失败了,当我尝试取消选中它时,以防万一这很重要。

09/03/2019 10:50:14,Update_Equipment_table,Error,1,SERVER,Update_Equipment_table,Update Equipment Table,,以用户身份执行:SERVER\SYSTEM。适用于 64 位的 Microsoft (R) SQL Server 执行包实用程序版本 13.0.1601.5 版权所有 (C) 2016 Microsoft。版权所有。开始时间:上午 10:50:14 错误:2019-09-03 10:50:15.94 代码:0xC0209303
来源:包连接管理器“\SERVERPATH\ricochet_tanks.mdb” 描述:请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册。如果未安装 64 位驱动程序,请在 32 位模式下运行该软件包。错误代码:0x00000000。OLE DB 记录可用。来源:“Microsoft OLE DB 服务组件”Hresult:0x80040154 描述:“类未注册”。结束错误错误:2019-09-03 10:50:15.94 代码:0xC001002B 源:包连接管理器“\SERVERPATH\ricochet_tanks.mdb”描述:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册. 有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=219816 End Error 错误:2019-09-03 10:50:15.94 代码:1 说明:SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“\SERVERPATH\ricochet_tanks.mdb”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。结束错误错误:2019-09-03 10:50:15.94 代码:0xC0047017 源:数据流任务 SSIS.Pipeline 描述:OLE DB 源验证失败并返回错误代码 0xC020801C。结束错误错误:2019-09-03 10:50:15.94 代码:0xC004700C
来源:数据流任务 SSIS.Pipeline 描述:一个或多个组件验证失败。End Error 错误:2019-09-03 10:50:15.94 代码:0xC0024107 来源:数据流任务描述:任务验证期间出现错误。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:上午 10:50:14 结束时间:上午 10:50:15 经过时间:1.422 秒。包执行失败。步骤失败。,00:00:01,0,0,,,,0

这是工作详细信息的屏幕截图。我相信因为我使用文件系统作为包源,所以我没有选择服务器凭据或凭据类型的选项。 在此处输入图像描述

标签: sql-serverssis

解决方案


64 位 SQL 服务器需要 64 位 ACE 驱动程序。如果您已经安装了正确的驱动程序,则需要设置以下属性:

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1;
GO

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1;
GO

推荐阅读