Oracle10g SQLServer 2005互相訪問解決方法

1.      SQLServer 2005 訪問Oracle 10g

a)        在安裝SQLServer數據庫德服務器上安裝Oracle 10g Client並且配置數據庫連接Oracle Net Manager,並測試連接成功。

配置oracle net manager

b)        登入SQL Server後,選擇Server Objects下的Linked Servers新增,如下選擇Oracle Provider for OLE DB

 

新建Linked Server

指定Linked Server訪問賬號密碼

c)         手動修改註冊表或將以下代碼編輯保存reg文件執行即可。需要注意的是如果服務器安裝多個SQL數據庫,則在對應的資料庫MSSQL.XProviders增加ORAOLEDB.ORACLEAllowInProcess參數

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-28500ORA-02063錯誤代碼testsql

建立系統ODBC

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章