【錯誤信息】
消息 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