【错误信息】
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错。提供程序未给出有关错误的任何信息。
环境介绍
Win7 64位、SQL SERVER 2012 64bit、OFFICE 2013 64位
执行的代码为
select *
from OPENROWSET('Microsoft.Ace.OLEDB.12.0', 'Excel 12.0;DATABASE=E:\test.xlsx' , 'Select * from [Sheet1$]')
以下为执行过程中的错误提示和解决方法,都是一步步来的.
错误提示 一
尚未注册 OLE DB 访问接口 "Microsoft.Ace.OLEDB.12.0"。
select *
from OPENROWSET('Microsoft.Ace.OLEDB.15.0', 'Excel 12.0;DATABASE=E:\test.xlsx', 'Select * from [Sheet1$]')
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.15.0" 报错。访问被拒绝。
消息 7350,级别 16,状态 2,第 1 行
无法从链接服务器 "(null)" 的 OLE DB 访问接口"Microsoft.Ace.OLEDB.15.0"获取列信息。
解决方法 二
控制面板/管理工具/服务/SQL Server (MSSQLSERVER) --> 右键 属性 --> 登录 --> 设置: 登录身份=本地系统账户 --> 重启 SQL Server (MSSQLSERVER) 服务
错误提示 三
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.15.0" 报错。提供程序未给出有关错误的任何信息。
消息 7330,级别 16,状态 2,第 1 行
无法从链接服务器 "(null)" 的 OLE DB 访问接口"Microsoft.Ace.OLEDB.15.0"提取行。
解决方法 三
修改ACE接入参数,以下操作后要重启 SQL Server (MSSQLSERVER) 服务.
或者
USE [master]
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.15.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.15.0', N'DynamicParameters', 1
GO
一般情况下问题应该是已经解决的了.
错误提示 四
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.15.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.Ace.OLEDB.15.0”的数据源对象。
解决方法 四
1,这时可能EXCEL 处于不可编辑状态,看看是不是打开了,如果打开了要关闭上才行.
2,如果没有文件打开,那么可以打开EXCEL表,看看有没有说“文件正在被占用”之类,如果有的话可以过一会再试试.
开启外围配置
--开启高级设置
exec
sp_configure
'show advanced options'
,1reconfigure
--开启外围设置
exec
sp_configure
'Ad Hoc Distributed Queries'
,1reconfigure
文章参照了 http://blog.csdn.net/wonsoft/article/details/7730976