簡體   English   中英

在 Azure Z9778840A06741CB30BA2Z82 的存儲過程中從 SQL 查詢中讀取 excel 工作表數據

[英]Reading excel sheet data from SQL query in stored procedure in Azure SQL

我正在嘗試從 SQL 查詢中讀取 excel 文件中的數據並將其插入臨時表中,但無法從 Excel 文件中讀取數據。 低於錯誤:

  1. 此版本的 SQL 服務器不支持“OPENDATASOURCE”行集提供程序。
  2. 此版本的 SQL 服務器不支持“OPENROWSET”行集提供程序。
  3. 此版本的 SQL 服務器不支持鏈接服務器。

嘗試以下解決方案:

SELECT * FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 8.0;HDR=NO;Database=T:\temp\Test.xlsx',
    'select * from [sheet1$]')

SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\Users\Downloads\Excel Logic File.xlsx;Extended Properties=EXCEL 12.0')..[Sheet1$];

在運行查詢之前還嘗試在下面執行:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

出現錯誤(此版本的 SQL 服務器不支持鏈接服務器。)在鏈接服務器上執行(“從表中選擇 *”)

  • 我試圖將數據從本地 Excel 導入到 Azure SQL,得到了同樣的錯誤。 在此處輸入圖像描述

此版本的 SQL 服務器不支持“OPENROWSET”行集提供程序。

MSDoc中所述, OPENDATASOURCEOPENROWSET在 Azure SQL 數據庫中受支持,但數據文件必須在 Z3A580F142203677F1F0BC30898F63F5 中使用 B 存儲選項。

創建外部數據源並將示例 excel 文件上傳到 Azure Blob 存儲中。 添加所需的文件格式(請檢查以下示例)

CREATE  EXTERNAL  DATA  SOURCE mydata
WITH (
TYPE  = BLOB_STORAGE,
LOCATION =  'https://blb1209.blob.core.windows.net'
);
 
SELECT  *  FROM  OPENROWSET(
BULK  'data/sample3.csv',
DATA_SOURCE =  'mydata',
SINGLE_CLOB) AS DataFile;

在此處輸入圖像描述

從本地

能夠使用任務從 Excel 導入數據 => 導入數據

檢查以下解決方法。

我們可以使用多種方式將 Excel 數據導入 Azur SQL。

右鍵單擊您的數據庫 => 任務 => 導入數據 Select 數據源為 Excel = > 瀏覽您的 Excel 文件

在此處輸入圖像描述

Select 目標作為 SQL 服務器的 Microsoft OLEDB 提供程序 => 輸入 SQL 服務器身份驗證的憑據

在此處輸入圖像描述

Output 在本地:在此處輸入圖像描述

Output 在 Azure SQL在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM