日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL2005-使用openrowset 里读取excel文件

發布時間:2023/12/2 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL2005-使用openrowset 里读取excel文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多時候我們都知道使用.net代碼去讀取word,excel文檔,但是我們如何使用sql句語里讀取excel文件呢:SQL2005為我們提供了OPENROWSET來訪問各種數據源:,當然我還是建議使用.net代碼來讀取這些文件。這里就不多說了。

我們先看一下官方的解釋:

包含訪問 OLE DB 數據源中的遠程數據所需的全部連接信息。當訪問鏈接服務器中的表時,這種方法是一種替代方法,并且是一種使用 OLE DB 連接并訪問遠程數據的一次性的臨時方法。對于較頻繁引用 OLE DB 數據源的情況,請改為使用鏈接服務器。有關詳細信息,請參閱鏈接服務器。可以在查詢的 FROM 子句中像引用表名那樣引用 OPENROWSET 函數。依據 OLE DB 訪問接口的功能,還可以將 OPENROWSET 函數引用為 INSERT、UPDATE 或 DELETE 語句的目標表。盡管查詢可能返回多個結果集,但 OPENROWSET 只返回第一個結果集。

語法

OPENROWSET ( { 'provider_name' , { 'datasource' ; 'user_id' ; 'password'??? | 'provider_string' }?????? , { [ catalog. ] [ schema. ] object???? | 'query' }??? | BULK 'data_file' ,??????? { FORMATFILE = 'format_file_path' [ <bulk_options> ]??????? | SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB } } ) <bulk_options> ::=??? [ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]??? [ , ERRORFILE = 'file_name' ]??? [ , FIRSTROW = first_row ]??? [ , LASTROW = last_row ]??? [ , MAXERRORS = maximum_errors ]??? [ , ROWS_PER_BATCH = rows_per_batch ] 下面我們以一個例子來說明使用方法: 首先我們建立一個名為11.xls 的excel文檔,文檔的內容如下: 下面我們使用sql 語句來讀取11.xls select *
from openrowset
? ('Microsoft.Jet.OLEDB.4.0',
? 'Excel 8.0; Database=C:\Users\111\Desktop\11.xls',
? 'select * from [Sheet1$]') Database就是11.xls文件的路徑。Sheet1是你excel表里的名字. 查詢結果如下: Name Age Title

John??? 25??? Chair Man
Wendy??? 24??? CEO

注意在使用這個sql語句的過程中,我們可能會碰到下面的錯誤

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online

大概意思就是sqlserver 阻止了使用'OpenRowset/OpenDatasource'的組件,所以解決辦法如下:

我們使用sql語句來開啟這個功能

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

當然我們也可以使用SQL server的外圍工具來配置如下圖:

在Enamble OpenRowSet and OPENDTASOUCE SUPOORT 前面打上勾就ok了.

?

?

?

?

? ?

轉載于:https://www.cnblogs.com/liujiang/archive/2009/01/08/1371954.html

總結

以上是生活随笔為你收集整理的SQL2005-使用openrowset 里读取excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。