解決在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決Spark讀取Hive分割槽表出現Input path does not exist的問題SparkHive
- Java NPOI 讀取Excel 跳列 問題解決JavaExcel
- Oracle中SQL語句執行效率問題的查詢與解決OracleSQL
- sql一關聯多查詢時否定篩選出現的問題的解決SQL
- 查詢外部表出現KUP-4040錯誤
- sql 模糊查詢問題SQL
- plsql查詢亂碼問題解決SQL
- 在SQLServer處理中的一些問題及解決方法SQLServer
- sql 查詢條件問題SQL
- Laravel 中 sql 查詢 使用 group by 報錯問題。LaravelSQL
- 關於ActiveMQ在MyEclipse中出現無法讀取schema文件的問題解決方法MQEclipse
- SQL Server查詢慢的解決方案SQLServer
- 求救:關於讀取excel資料的問題Excel
- 查詢分析器不能單步除錯的的原因及解決方法除錯
- 模板中的名字查詢問題
- 海量資料的查詢快取問題快取
- 談談SQL慢查詢的解決思路SQL
- SQL語句巢狀查詢問題SQL巢狀
- SQL Server 查詢超時問題排查SQLServer
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- 深入sql多表差異化聯合查詢的問題詳解SQL
- ArcMap屬性表出現亂碼情況的解決
- Spark SQL中出現 CROSS JOIN 問題解決SparkSQLROS
- Oracle中SQL語句執行效率的查詢與解決 (3)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (2)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (1)OracleSQL
- 解決SQL Server 2005中鎖的問題SQLServer
- 查詢外部表出現無法開啟日誌檔案的錯誤
- 子查詢包含where ..or在Corelated Subquery 中語句中問題
- Kettle 在應用中遇到的一些問題和解決方法
- 解決 mybatis一對多分頁問題 聯級查詢MyBatis
- dba_free_space查詢速度慢問題解決
- 命中率及查詢有問題sqlSQL
- sql查詢時的一些格式操作SQL
- 一些常見功能的查詢sqlSQL
- 基於.NET的程式讀取Excel檔案的解決方案Excel
- 關於 mysql 中的 rand () 查詢問題MySql
- 解決Excel資料匯入sqlite中的中文亂碼問題ExcelSQLite