SQL Server 2008 R2 鏈接 Oracle 10g


首先sqlserver 鏈接oracle可以通過兩個訪問接口:

“MSDAORA” 和“OraOLEDB.Oracle”

1、“MSDAORA”訪問接口是由Microsoft OLE DB Provider for Oracle提供的,這里建議不使用此接口進行鏈接。通過該訪問接口建立的鏈接服務器在進行查詢oracle表(帶數據類型CLOB、BLOB字段)時會報這個錯誤“ 鏈接服務器""的 OLE DB 訪問接口 "MSDAORA" 返回了消息 "發生了一個 Oracle 錯誤,但無法從 Oracle 中檢索錯誤信息。"。 鏈接服務器""的 OLE DB 訪問接口 "MSDAORA" 返回了消息 "數據類型不被支持。"。 消息 7321,級別 16,狀態 2,第 1 行 准備對鏈接服務器 "" 的 OLE DB 訪問接口 "MSDAORA" 執行查詢"select * from SYS_MESSAGE"時出錯。”

2、“OraOLEDB.Oracle” 訪問接口是由oracle 的Oracle Probider for OLE DB 驅動提供的。它解決了兩個數據庫類型不一致的的問題。而且如果需要使用分布式事務,必須使用它來創建鏈接服務器。后文會有詳細介紹。 在創建之前,在SQLSERVER中,鏈接服務器->訪問接口->OraOLEDB.Oracle->右鍵屬性,選中 "Allow inprocess" (中文為:允許進程內) 這一步是使我們選擇的OraOLEDB.Oracle接口打開執行操作。如未設置會報如下錯誤: “無法初始化鏈接服務器 "null" 的 OLE DB 訪問接口 "OraOLEDB.Oracle" 的數據源對象"

 

服務器 windows server 2008 r2 64位  或 win 7 enterprise 64位

1. 服務器上需要安裝Oracle 64位的客戶端(http://www.oracle.com/technetwork/cn/database/10204-winx64-vista-win2k8-082253-zhs.html)

安裝完成后SQL Server的訪問接口上會新增”OraOLEDB.Oracle”(安裝32位客戶端,看不到)。

安裝:Windows Server2008 R2下安裝Oracle 10g

2. 配置”OraOLEDB.Oracle”屬性->啟用項“允許進程內”;

3. 新建鏈接服務器(名稱 自定 :ORA_LINK)

4. 填寫鏈接服務器名稱->選擇訪問接口”Oracle Provider for OLE DB”

5. 填寫產品名稱->Oracle

6. 數據源填寫Oracle客戶端/服務端配置的連接地址的服務名(tnsnames.ora中的服務名)

  (listener.ora/sqlnet.ora/tnsnames.ora配置文件詳解)

  (sqlnet.ora<->Oracle Net Manager  概要文件)(tnsnames.ora<->Oracle Net Manager 服務命名)(listener.ora<->Oracle Net Manager 監聽程序)

7. 填寫Oracle的登陸賬號密碼:選擇項->安全性->選擇”使用此安全上下文建立連接”,並填入Oracle登錄名與登陸密碼

SELECT * FROM OPENQUERY(ORA_LINK,'SELECT * FROM USERNAME.TABLE');

 

Oracle 的 透明網關(transparent Gateway) 也可以實現 Oracle 可以與 其它異構數據庫的互聯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM