SSIS作业提示所请求的 OLE DB 访问接口 Microsoft.ACE.OLEDB.12.0 尚未注册
没有跨不过的坎,也没有解决不了的问题,那些曾经没有把我们打死的困难,最终都会让我们变得更加强大
最近在使用ETL获取Excel数据时,在本地运行没有任何问题,部署到服务器后,使用作业运行时便一直提示以下错误
百度中几乎所有的博文资料都说安装相应的驱动程序,但是我安装之后依然解决不了问题,各种版本的都装了,2016,2010,2007,真是头大
有些博文说将应用程序池中的“启用32位应用程序”设置为true,我将应用程序池中所有的应用都设置为了true,依然解决不了问题
最后将作业中配置处的“32位运行时”勾选了,才得以把问题解决,好家伙,竟然隐藏得这么深,配置如下
在作业——步骤——配置——高级——32位运行时(勾选)
总结一下出现该问题大致要处理的几个步骤:
1、首先,你肯定要安装相应的驱动程序,2007版本32位的(下面是百度网盘的链接,永久有效),下载后双击安装即可
链接:https://pan.baidu.com/s/1rR1LUCgG2j7IHfvn6hj1nA
提取码:y3op
安装好后如果在你的注册表中含有Microsoft Access Driver (*.mdb, *.accdb),则代表安装成功
注册表查看路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI
2、项目部署之前,将调试选项中的按64位程序运行设置为false
如果未设置该位置,会提示以下错误,这在本地就不会运行通过,所以该处的设置也很关键
[Excel 源 [2]] 错误: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“Excel 连接管理器”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。
[SSIS.Pipeline] 错误: Excel 源 未能通过验证,返回的错误代码为 0xC020801C。
3、配置作业的步骤属性(在前面已提到)
该步骤是我解决标题中的问题的关键所在
4、设置应用程序池的32位应用程序为true
这一步不知道是不是必须,如果进行了上述操作还是没有解决问题,可以再做这个设置
路径:控制面板——管理工具——Internet 信息服务(IIS)管理器——应用程序池——高级设置——启用32位应用程序(true)
以上是我针对此问题的处理过程,希望能帮助到大家
欢迎大家评论交流转发,如有不对之处,欢迎大家指正