在 oracle 10g 中訪問 SQL Server

以前公司有Delphi + SQL Server的系统,后来新开发了一个系统9iAS + DB10G (有点类似于Oracle EBS),数据要用到SQL Server里的数据,然后我们在Oracle DB Server上配置了一下,可以直接从Oracle DB里访问SQL Server的表:

************************************************************

show parameter global_name

alter system set global_names=false;


如果global_nameflase的情況下,如下步驟:
1.
配置listener
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME =sid1)
      (ORACLE_HOME = D:/oracle/ora10g)
      (SID_NAME = sid1)
    )
    (SID_DESC =
      (PROGRAM =
hsodbc)
      (SID_NAME = SQL Server_SID)
      (ORACLE_HOME = d:/oracle/ora10g)

    )
  )

LISTENER =

/* 

 (DESCRIPTION =

     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

   )

*/有可能要這段
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )

注意紅色的與藍色的地方;

2.
配置tnsnames.ora:
增加如下的一個tnsname:
test01 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SQL Server_SID)
    )
   
(HS = OK)
  )
注意紅色的地方;

3.
增加初始化文件:
%oracle_home%/hs/admin/,創建一個以init<SQL Server_SID>.ora文件,內容如下:
如果global_nametrue的情況下要加以下兩句:

HS_DB_NAME = =SQL Server_name

HS_DB_DOMAIN =域名

否則隻要以下兩句:

HS_FDS_CONNECT_INFO=SQL Server_SID
HS_FDS_TRACE_LEVEL=OFF

4.
重新啟動listener

5.create public database link link_name connect to user identified by ****** using 'test01';

6.
這樣就可以了。

說明:
(1). SQL Server_SID
為創建的訪問SQL Serverodbc的名稱;
(2). listener
中的program為什麼要用hsodbc,還沒有分析出來;
(3).
其他的與9i的基本上沒有什麼區別

你可能感兴趣的:(在 oracle 10g 中訪問 SQL Server)