在一台win2003上安装sqlsever 2000sp4 和gateways10g,另一台win2003上安装ORACLE10G,现在想通过透明网关在oracle的机器上查询sqlserver2000数据库中的数据。但在用下面语句查询的时候就没有任何反映
 select * from t@sql2000;下面是配置代码:
inittg4msql.ora
HS_FDS_CONNECT_INFO=SQL2000.MESSQL
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVERlistener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = tg4msql)
      (ORACLE_HOME = C:\oracle\product\10.2.0\tg_1)
      (PROGRAM = tg4msql)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = sql2000)(PORT = 1521))
    )
  )tnsnames.ora 
SQL2000 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(PORT=1521)(HOST=10.190.102.88))
    (CONNECT_DATA =
       (SID=tg4msql)
    )
    (HS=OK)
   )建立database link
create database link sql2000 connect to mes identified by mes using 'sql2000'

解决方案 »

  1.   

    第一台机子指:在一台win2003上安装sqlsever 2000sp4 和gateways10g,
    第二台机子指:另一台win2003上安装ORACLE10G
    在第一台机子上:
    inittg4msql.ora 
    HS_FDS_CONNECT_INFO=SQL2000.MESSQL 中SQL2000.MESSQL 应该是第一台机子的主机名。数据库名
    在透明网关的监听配置文件里,即第一台机子。
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
    )
    --*以下部分是添加的部分*-
        (SID_DESC=
        (SID_NAME = tg4msql)  (这里的SID可以自己命名)
         (ORACLE_HOME = C:\oracle\product\10.2.0\tg_2\) (此路径为透明网关程序的主目录)
        (PROGRAM = tg4msql)
       )
      )然后在第二台机子的TNS配置里
    tnsnames.ora 
    SQL2000 = 
      (DESCRIPTION = 
        (ADDRESS = (PROTOCOL = TCP)(PORT=1521)(HOST=10.190.102.88)) 
        (CONNECT_DATA = 
          (SID=tg4msql) 
        ) 
        (HS=OK) 
      )