SQL Server中查詢ORACLE的資料

2021-10-01 10:01:48 字數 2549 閱讀 1866

通過鏈結伺服器,sql server 資料庫引擎 和 azure sql 資料庫託管例項可從遠端資料來源中讀取資料,並針對 sql server 例項之外的 ole db 資料來源等遠端資料庫伺服器執行命令。

在本場 chat 中,會講到如下內容:

適合人群:

從 sql server 中查詢 oracle 中的資料,可以在 sql server 中建立到 oracle 的鏈結伺服器來實現的,但是根據 32 位 、64 位的機器和軟體,需要用不同的驅動程式來實現。

本例程在 64 位的機器上,通過訪問介面:oracleprovide for ole db,來實現。

microsoft windows [版本 10.0.17134.556]microsoft sql server 2016 (sp2-gdr) (kb4293802) - 13.0.5081.1 (x64) (build 17763: )oracle database 12c enterprise edition release 12.1.0.2.0 - 64bit production

sqlserver 伺服器安裝 oracle 客戶端,此過程省略在 oracle 上建立資料庫使用者並建立資料表

配置 listener.ora

listener =  (description_list =    (description =      (address = (protocol = tcp)(host = 123-111)(port = 1521))      (address = (protocol = ipc)(key = extproc1521))    )  )
配置 tnsname.ora

orcl =  (description =    (address = (protocol = tcp)(host = 123-111)(port = 1521))    (connect_data =      (server = dedicated)      (service_name = orcl)    )  )
配置 oracle 網路安全,,不配置此項可能報「ora-12638: 身份證明檢索失敗」 錯誤

新建鏈結伺服器選擇「新建鏈結伺服器」

也可以使用

select *  from openrowset('oraoledb.oracle',     --介面                              'orcl';           --tnsname 配置名                              'schina';          --使用者名稱                              'schina',          --密碼                              'select * from testt')    --語句

由於安全配置可能會報如下錯誤sql server 阻止了對元件「ad hoc distributed queries」的 statement「openrowset/opendatasource」的訪問,因為此元件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用「ad hoc distributed queries」。有關啟用「ad hoc distributed queries」的詳細資訊,請搜尋 sql server 聯機叢書中的「ad hoc distributed queries」。啟用 ad hoc distributed queries 的方法,執行下面的查詢語句就可以了:

exec sp_configure 'show advanced options',1    reconfigureexec sp_configure 'ad hoc distributed queries',1  reconfigure
閱讀全文:

SQL Server中的查詢

本博文簡單介紹一下sql server中常用的幾類查詢及相關使用的方法。一 executescalar方法獲取單一值 executescalar方法是sqlcommand類的方法之一,執行查詢,並返回查詢所返回的結果集中的第一行第一列。csharp view plain copy print cla...

查詢SQL Server中的表名

sqlconnection conn new sqlconnection server uid sa pwd 123 database 08 09cgywdb connection timeout 2 conn.open sqlcommand comm new sqlcommand select o...

分頁查詢中sql server和mysql

mysql是用limit進行查詢 sql server中是用top進行查詢,select top n from tablename,這個top是可以巢狀的,例如 select top 5 from tablename where id not in select top 5 from tablena...