解決在Sql Server2005查詢分析器中讀取Excel表出現的一些問題
環境:
系統: windows7,
資料庫: sqlserver2005,
office: office2003
SQL讀取Excel常用的方式有:
A.通過使用 OpenRowSet 和 OpenDataSource 函式
B.通過使用連結伺服器查詢 Excel
select * from OpenRowSet
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
[Sheet1$]
)
一般報錯:
訊息 7399,級別 16,狀態 1,第 1 行
連結伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.Jet.OLEDB.4.0" 報錯。提供程式未給出有關錯誤的任何資訊。
訊息 7303,級別 16,狀態 1,第 1 行
無法初始化連結伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.Jet.OLEDB.4.0" 的資料來源物件。
select * from OpenDataSource
('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"'
)...[Sheet1$]
一般報錯:
訊息 7399,級別 16,狀態 1,第 1 行
連結伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.Jet.OLEDB.4.0" 報錯。提供程式未給出有關錯誤的任何資訊。
訊息 7303,級別 16,狀態 1,第 1 行
無法初始化連結伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.Jet.OLEDB.4.0" 的資料來源物件。
SELECT * FROM OpenDataSource(
'Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;User ID=Admin;Password=;Extended properties=Excel 5.0'
)...[Sheet1$]
一般報錯:
訊息 7308,級別 16,狀態 1,第 1 行
因為 OLE DB 訪問介面 'Microsoft.Jet.OLEDB.4.0' 配置為在單執行緒單元模式下執行,所以該訪問介面無法用於分散式查詢。
declare @rc int
declare @server nvarchar(128)
declare @srvproduct nvarchar(128)
declare @provider nvarchar(128)
declare @datasrc nvarchar(4000)
declare @location nvarchar(4000)
declare @provstr nvarchar(4000)
declare @catalog nvarchar(128)
set @server = 'exceltosql'
set @srvproduct = 'excel'
set @provider = 'microsoft.jet.oledb.4.0'
set @datasrc = 'e:\bb.xls'
set @provstr = 'excel 8.0'
exec @rc = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
查詢:
select * from exceltosql...sheet1$
報錯:
連結伺服器"exceltosql"的 OLE DB 訪問介面 "microsoft.jet.oledb.4.0" 返回了訊息 "無法啟動應用程式。工作組資訊檔案丟失,或是已被其它使用者以獨佔方式開啟。"。
訊息 7399,級別 16,狀態 1,第 1 行
連結伺服器 "exceltosql" 的 OLE DB 訪問介面 "microsoft.jet.oledb.4.0" 報錯。身份驗證失敗。
訊息 7303,級別 16,狀態 1,第 1 行
無法初始化連結伺服器 "exceltosql" 的 OLE DB 訪問介面 "microsoft.jet.oledb.4.0" 的資料來源物件。
下面總結解決方式:
1、在SQL Server 外圍應用配置器中啟用 OpenRowSet 和 OpenDataSource函式
2、執行以上sql語句的資料庫必須是本地資料庫,如果為遠端的資料庫就會報上面的錯誤
3、連結字串 Extended Properties屬性的內容要以分號間隔並用雙引號括起來,sheet1$ 在括號外
原部落格地址:http://wep2008.blogbus.com/logs/35390970.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-616353/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql一關聯多查詢時否定篩選出現的問題的解決SQL
- sql 模糊查詢問題SQL
- Laravel 中 sql 查詢 使用 group by 報錯問題。LaravelSQL
- SQL Server查詢慢的解決方案SQLServer
- SQL Server 查詢超時問題排查SQLServer
- 深入sql多表差異化聯合查詢的問題詳解SQL
- Spark SQL中出現 CROSS JOIN 問題解決SparkSQLROS
- leetcode題解(查詢表問題)LeetCode
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- 一些常見功能的查詢sqlSQL
- ArcMap屬性表出現亂碼情況的解決
- 解決 mybatis一對多分頁問題 聯級查詢MyBatis
- sql多參問題解決SQL
- SQL Server2005使用CTE實現遞迴QCSQLServer遞迴
- Oracle:sqlplus查詢出的中文是亂碼問題的解決(轉)OracleSQL
- Python的Selenium一些問題解決Python
- SQL 查詢中的 NULL 值SQLNull
- 基於.NET的程式讀取Excel檔案的解決方案Excel
- PostgreSQL 原始碼解讀(167)- 查詢#87(基礎知識-語法分析器Bison)SQL原始碼語法分析
- 關於 mysql 中的 rand () 查詢問題MySql
- 關於mysql查詢字符集不匹配問題的解決方法MySql
- 快取世界中的三大問題及解決方案快取
- DbForge Studio for SQL Server入門教程:在查詢生成器中建立查詢SQLServer
- 在Linux中,ansible可以解決哪些問題?Linux
- 在CSS中解決內容過長的問題CSS
- JQuery中ajax的使用與快取問題的解決方法jQuery快取
- SQL查詢的:子查詢和多表查詢SQL
- 探究MySQL中SQL查詢的成本MySql
- PostgreSQL 原始碼解讀(18)- 查詢語句#3(SQL Parse)SQL原始碼
- 手機端頁面在專案中遇到的一些問題及解決辦法
- kodbox讀取alist檔案失敗,問題解決過程
- Mysql中的巢狀子查詢問題QSBSMySql巢狀
- 序列號查詢工具KCNScrew解決多個軟體的註冊問題
- PostgreSQL 原始碼解讀(76)- 查詢語句#61(獲取成本最低的訪問路徑)SQL原始碼
- 在mysql查詢效率慢的SQL語句MySql
- 在檔案上使用 SQL 查詢的示例SQL
- linux中查詢IP地址時出現所謂的“亂碼”問題Linux
- 如何捕獲問題SQL解決過度CPU消耗的問題SQL
- c# excel讀取的日期變成整數的解決辦法C#Excel