- 確保運行 SQL Server 的服務器上的 Oracle 客戶端軟件已達到提供程序所要求的級別。用于 Oracle 的 Microsoft OLE DB 提供程序要求 Oracle 客戶端軟件支持文件的版本為 7.3.3.4.0 或更高版本,并且 SQL*Net 的版本為 2.3.3.0.4。
- 在運行 SQL Server 的服務器上創(chuàng)建指向 Oracle 數(shù)據(jù)庫實例的 SQL*Net 別名。有關更多信息,請參見 Oracle 文檔。
- 執(zhí)行 sp_addlinkedserver 創(chuàng)建鏈接服務器,指定 MSDAORA 為 provider_name,指定用于 Oracle 數(shù)據(jù)庫實例的 SQL*Net 別名為 data_ source。
以下示例假設已將一個 SQL*Net 別名定義為 OracleDB。
sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'
- 使用 sp_addlinkedsrvlogin 創(chuàng)建從 SQL Server 登錄到 Oracle 登錄的登錄映射。
以下示例通過 Oracle 登錄名 OrclUsr 和密碼 OrclPwd 將 SQL Server 登錄 Joe 映射到步驟 3 中定義的鏈接服務器:
sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
每個 Oracle 數(shù)據(jù)庫實例僅有一個名稱為空的目錄。Oracle 鏈接服務器中的表必須使用四部分名稱格式 OracleLinkedServerName..OwnerUserName.TableName 進行引用。例如,以下 SELECT 語句引用 Oracle 用戶 MARY 在 OrclDB 鏈接服務器映射的服務器上所擁有的表 SALES。
SELECT *
FROM OrclDB..MARY.SALES
注意需要 修改 注冊表 :對于win2k/oracle 8i ,修改的內(nèi)容為:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient8.dll"
"OracleSqlLib"="orasql8.dll"
"OracleOciLib"="oci.dll"
其它事項:啟動mstdc服務