Microsoft OLE DB Provider for Oracle (Database Engine)

Microsoft OLE DB Provider for Oracle 允許分散式查詢來查詢 Oracle 資料庫內的資料。

若要建立連結伺服器來存取 Oracle 資料庫執行個體

  1. 請確認執行 SQL Server 之伺服器上的 Oracle 用戶端軟體位於提供者所需的層級。Microsoft OLE DB Provider for Oracle 需要 Oracle Client Software Support File 7.3.3.4.0 版或較新的版本,以及 SQL*Net 2.3.3.0.4 版。

  2. 在執行 SQL Server 的伺服器上建立 SQL*Net 別名,以指向 Oracle 資料庫執行個體。如需詳細資訊,請參閱 Oracle 文件集。

  3. 執行 sp_addlinkedserver 來建立連結伺服器,並指定 MSDAORA 作為 provider_name,而 Oracle 資料庫的 SQL*Net 別名為 data_ source。

    以下範例將假設 SQL*Net 別名已定義成 OracleDB。

    sp_addlinkedserver 'OrclDB ','Oracle',' MSDAORA','OracleDB'
    
  4. 使用 sp_addlinkedsrvlogin 對 Oracle 登入建立 SQL Server 登入的登入對應。

    以下範例會使用 Oracle 登入與密碼 OrclUsr 和 OrclPwd,針對步驟 3 定義的連結伺服器對應 SQL Server 登入 Joe。

    sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
    

每個 Oracle 資料庫執行個體只有一個名稱空白的類別目錄。您必須使用表單 OracleLinkedServerName**..OwnerUserName.**TableName 的四部份名稱,以參考 Oracle 連結伺服器中的資料表。例如,以下 SELECT 陳述式會參考資料表 SALES,而它的擁有者是 OrclDB 連結伺服器對應之伺服器中的 Oracle 使用者 MARY:

SELECT *
FROM OrclDB..MARY.SALES

當您參考 Oracle 連結伺服器中的資料表時,請使用以下規則:

  • 若資料表與資料行名稱是在 Oracle 中所建立,且不包含引號識別碼,請使用全部大寫字的名稱。

  • 若資料表與資料行是在 Oracle 中所建立,且包含引號識別碼,請使用與當初在 Oracle 中建立時所使用的相同名稱 (包括字母大小寫)。

  • 即使資料表的主要資料行可以為 NULL 或已經有預設值,INSERT 陳述式應該將值套用到資料表內的所有資料行。

登錄項目

若要讓 OLE DB Provider for Oracle 與 Oracle 用戶端軟體一起運作,您必須從命令行執行登錄檔以修改用戶端的登錄。用戶端軟體的多個執行個體不應該同時執行。這些檔案會在下表中列出,而且是位於包含 Microsoft Data Access Component (MDAC) 安裝的相同目錄結構下。這通常是位於 C:\Program Files\Common Files\System Files\OLE DB。

Oracle 用戶端

Windows NT 或 9x

Windows 2000

7.x

mtxoci7x_winnt.reg

mtxoci7x_win2k.reg

8.0

mtxoci80_winnt.reg

mtxoci80_win2k.reg

8.1

mtxoci81_winnt.reg

mtxoci81_win2k.reg

請參閱

概念

分散式查詢

以 SQL Server 測試 OLE DB 提供者