日期:2014-05-18  浏览次数:20438 次

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
操作系统:Windows Server 2008 64位企业版
数据库:SqlServer 2005 64位企业版
环境:SqlServer 2005 SSIS package

在SSIS的package中读取.xlsx文件,因为SQL SERVER 2005不支持直接读取此类文件,所以采取用'Microsoft.ACE.OLEDB.12.0来读取,包执行中提示错误:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
即:(未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序)

其中AccessDatabaseEngine.exe正确默认安装。
在产品服务器上环境相同,包的执行正确,这个服务器是我自己新建的,不知道哪里设置有问题。

谢谢各位。

------解决方案--------------------
你的环境是64位的,OLEDB 是没有64位的provider的,所以要在64位环境下执行,这个有几种方案

1, 在SSIS项目中选择属性:Debugging中将Run64bitRuntime设置成true

2,调用C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
一定要是(X86)这个文件夹下的哦,这个命令行工具的具体用法可以查看MSDN