1. SQLServer 2005 訪問Oracle 10g
a) 在安裝SQLServer數據庫德服務器上安裝Oracle 10g Client並且配置數據庫連接Oracle Net Manager,並測試連接成功。
b) 登入SQL Server後,選擇Server Objects下的Linked Servers新增,如下選擇Oracle Provider for OLE DB
c) 手動修改註冊表或將以下代碼編輯保存reg文件執行即可。需要注意的是如果服務器安裝多個SQL數據庫,則在對應的資料庫MSSQL.X的Providers增加ORAOLEDB.ORACLE的AllowInProcess參數
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/MSSQL.1/Providers/ORAOLEDB.ORACLE]
"AllowInProcess"=dword:00000001
d) 測試Link Server,需要注意的是schema.table必須大寫,否則報錯
SELECT * FROM TESTORA..PMS.JOB_TYPE即可
e)
2. Oracle 10g 訪問 SQLServer 2005(無需安裝透明網關方式)
a) 在安裝Oracle 10g數據庫的服務器上安裝Microsoft Data Access Components 2.8
b) 進入ODBC建立系統DSN(請注意,不要建用戶DSN,否則會發生ORA-28500,ORA-02063錯誤代碼)testsql
c) 配置tnsnames.ora增加以下內容,路徑D:/oracle/product/10.2.0/NETWORK/ADMIN
TESTSQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testsql)
)
(HS=)
)
d) 配置listener.ora增加以下紅色內容,路徑D:/oracle/product/10.2.0/NETWORK/ADMIN
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:/oracle/product/10.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = TESTSQL)
(ORACLE_HOME = D:/oracle/product/10.2.0)
(PROGRAM = hsodbc)
)
)
e) 重新啓動oracle 監聽器
f) 添加網關配置文件inittestsql.ora,路徑D:/oracle/product/10.2.0/hs/admin,可複製原來的inithsodbc.ora修改即可。
HS_FDS_CONNECT_INFO = testsql
HS_FDS_TRACE_LEVEL = 0
g) 建立database link
CREATE DATABASE LINK TESTSQL USING ‘TESTSQL’;
h) 測試database link
SELECT * FROM dbo.表名@testsql