在64位SQL Server中建立Oracle的連接服務器

當咱們同時使用SQL Server和Oracle來存儲數據時,常常會用到跨庫查詢。爲了方便使用跨庫查詢,一個最好的辦法就是經過建立連接服務器來實現。既能夠在SQL Server中建立Oracle的連接服務器,也能夠在Oracle中建立SQL Server的連接服務器。本文主要講述如何在SQL Server中建立Oracle的連接服務器,能夠經過圖形界面和命令兩種方式來建立。html

工具/原料

  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition Service Pack2數據庫

  • Microsoft SQL Server 2005 Standard Edition x64安全

  • Oracle Provider for OLE DB服務器

0. 前期準備工做——安裝驅動

  •     若是用32位win2003操做系統,會有系統自帶的Microsoft OLE DB Provider for Oracle驅動,所以不須要作額外的準備工做,但若是使用的是64位系統,那麼這個驅動是沒有的,而且微軟也不提供這個驅動的64位版本,所以,此時只能使用Oracle提供的Oracle Provider for OLE DB這個驅動。ide

        那麼如何安裝這個驅動呢?安裝一個完整的Oracle11gR2程序也是一個有效的方法,但這個64位版本的安裝包有2個多G,至關龐大,若是僅僅是爲了創建連接服務器,徹底不必裝這麼個龐然大物。其實咱們只須要到Oracle官網上下載ODAC壓縮包便可。工具

        至於如何安裝ODAC,不是本文的重點,你們能夠百度搜索個人另外一篇文章——《Oracle數據訪問組件ODAC的安裝方法》。測試

    END

1. 經過圖形界面建立Oracle的連接服務器

  1. 1

    打開Microsoft SQL Server Management Studio並以sa身份登陸,在左側的「對象資源管理器」窗口中展開「服務器對象」節點,在其下的「連接服務器」節點上右鍵選擇「新建連接服務器...」,如圖ui

    在64位SQL Server中建立Oracle的連接服務器
  2. 2

    在彈出的「新建連接服務器」對話框中,按照圖示填寫,具體填寫項目說明以下:spa

    * 連接服務器:這是連接服務器的別名,名字能夠由你本身隨意決定操作系統

    * 服務器類型選擇「其餘數據源」

    * 訪問接口:必定要選擇「Oracle Provider for OLE DB」。若是是32位系統,還能夠選擇「Microsoft OLE DB Provider for Oracle」,但64位系統就只能選擇前者

    * 產品名稱:必定是「Oracle」,這是固定寫法,只要是連接Oracle數據庫,都得這麼寫

    * 數據源:是你要連接的Oracle數據庫的庫名。在個人Oracle數據庫軟件裏,創建了一個名爲ora的數據庫,我想連接到這個名爲ora的數據庫,因此我這裏的「數據源」填的就是「ora」,你們能夠根據本身的實際狀況來填寫。

    填好之後不要急着去點擊「肯定」按鈕。

    在64位SQL Server中建立Oracle的連接服務器
  3. 3

    再點擊左側「選項頁」裏的「安全性」,右邊選擇最下面的「使用此安全上下文創建鏈接」,而後在下面輸入鏈接到ora(根據本身的實際狀況來更改)數據庫的用戶名和密碼。再點擊「確認」按鈕,至此,一個明文ORA_TEST的連接服務器就建好了。

    在64位SQL Server中建立Oracle的連接服務器
    END

2. 經過命令來建立Oracle的連接服務器

  • 把下面兩條命令語句補全,而後在SQL Server中執行便可建立成功:

  • EXEC master.dbo.sp_addlinkedserver @server = N'別名', @srvproduct=N'庫名',@provider=N'MSDAORA', @datasrc=N'TNS名'

  • EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'別名', @locallogin = NULL ,@useself = N'False', @rmtuser = N'模式名', @rmtpassword = N'密碼'

    END

3. 測試查詢Oracle數據庫

  • select * from openquery(ORA_TEST, 'SELECT * FROM tab')

    END

4. 可能遇到的問題

  • 在測試查詢Oracle數據庫時,有可能會遇到沒法建立「OraOLEDB.Oracle」的實例的錯誤。這個問題能夠在百度經驗裏搜索個人另外一篇文章——《沒法建立「OraOLEDB.Oracle」的實例的解決辦法》。

    END

注意事項

  • 本文的成功是創建在Oracle數據庫驅動的成功安裝和tnsnames.ora文件的正確配置的基礎之上的,對這一點若是有疑惑,你們能夠百度搜索個人另外一篇文章——《Oracle數據訪問組件ODAC的安裝方法》。

  • 在測試查詢Oracle數據庫時,有可能會遇到沒法建立「OraOLEDB.Oracle」的實例的錯誤。這個問題能夠在百度經驗裏搜索個人另外一篇文章——《沒法建立「OraOLEDB.Oracle」的實例的解決辦法》。

相關文章
相關標籤/搜索