我的环境是oracle9.2,sql server2000,sybase11.5操作系统是windows2000
inittg4msql.ora配置如下
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=SYBASE\TEST;DATABASE=PUBS"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
inittg4sybs.ora配置如下
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for Sybase#
# HS init parameters
#
HS_FDS_CONNECT_INFO=SYBASE.test
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER#
# Environment variables required for Sybase
#
set SYBASE=c:\sybase
listener.ora配置如下
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sybase)(PORT = 1521))
    )
  )SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = test)
    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\ora92)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = tg4msql)
      (PROGRAM = tg4msql)
      (SID_NAME = tg4msql)
      (ORACLE_HOME = C:\oracle\ora92)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = tg4sybs)
      (PROGRAM = tg4sybs)
      (SID_NAME = tg4sybs)
      (ORACLE_HOME = C:\oracle\ora92)
    )
  )
tnsnames.ora配置如下
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.sybs =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sybase)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = tg4sybs)
    )
    (HS = OK)
  )
MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sybase)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = tg4msql)
    )
    (HS = OK)
  )TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sybase)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sybase)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
sqlnet.ora 配置如下
# SQLNET.ORA Network Configuration File: C:\oracle\ora92\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
通过查看试图V$PARAMETER 确定global_names为false
我是用如下语句创建database link的
create public database link msql connect to sa identified by robbie using 'MSQL';
create public database link sybs connect to sa identified by robbie using 'SYBS';
在我执行如下语句就会出错分别如下
SQL> select "a","b" from "test"@sybs;
select "a","b" from "test"@sybs
                           *
ERROR 位于第 1 行:
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Transparent gateway for SYBASE]
ORA-02063: 紧接着2 lines(源于SYBS)
SQL> select * from "jobs"@msql;
select * from "jobs"@msql
                     *
ERROR 位于第 1 行:
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Transparent gateway for MSSQL][Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL
Server 不存在或访问被拒绝 (SQL State: 08001; SQL Code: 17)
ORA-02063: 紧接着2 lines(源于MSQL)
我已经通过vb试过了用odbc完全可以访问sybase和sql server请问各位高手我的透明网关问题出在哪里?大家帮帮我吧,要不然春节都过不好了!

解决方案 »

  1.   

    参考下:
     1、安装 Microsoft Data Access Components (MDAC)SDK ODBC driver
    2、建立 SQL SERVER 数据源
    test连接上我的test数据库
    3、配置tnsnames.ora. (ORACLE_HOME\NETWORK\ADMIN)
       test=
          (DESCRIPTION=
            (ADDRESS=
               (PROTOCOL=tcp)
               (HOST=<IP地址>)
               (PORT=1521)
            )
            (CONNECT_DATA=
               (SID=test)
            )
            (HS=)
          )
    4、配置listener.ora. (ORACLE_HOME\NETWORK\ADMIN)
       (SID_DESC=
          (SID_NAME=test)
          (ORACLE_HOME=c:\Oracle\iSuites)
          (PROGRAM=hsodbc)
       )
    5、重启ORACLE监听.
       CMD
       LSNRCTL STOP
       LSNRCTL START
       LSNRCTL STATUS
    6、添加网关配置文件. (ORACLE_HOME\HS\ADMIN)
       文件名为:inittest.ora
       文件内容:
       #
       # HS init parameters
       #
       HS_FDS_CONNECT_INFO = test
       HS_FDS_TRACE_LEVEL = 0
       #
       # Environment variables required for the non-Oracle system
       #
       #set <envvar>=<value>
    7、进入ORACLE SQL*PLUS,建立数据库链.
      CREATE DATABASE LINK TOSQL USING 'test';
      

  2.   

    通过odbc和oledb访问sql server都没有问题,但是使用透明网关就是不好用,总是说服务器不存在或者是服务器拒绝访问。我现在使用odbc访问sybase出现
    select * from test@hssybs 

    ERROR 位于第 1 行: 
    ORA-02068: 以下严重错误源于HSSYBS 
    ORA-28511: 丢失与使用 
    SID=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=sybase)(PORT=1521))) 
    (CONNECT_DATA=(SID=hssybs))) 的多机种远程代理程序的 RPC 连接 
    大家看看这个问题是怎么造成的? 
    我使用dsedit可应ping通sybase服务器 
      

  3.   

    在oracle8i中是必须购买,但在9i中是免费的。而且我访问sql server已经实现了,只是访问Sybase时总出这个错:ERROR 位于第 1 行:
    ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
    [Transparent gateway for SYBASE]
    ORA-02063: 紧接着2 lines(源于DDGLSYBS)
      

  4.   

    这个问题是很烦人,据我所知也是9i不需要另外买透明网关,我现在配置透明网关总是不好用,我通过oledb和odbc然后通过hs都可以访问sql server但是就是通过透明网关不好用不知道为什么,难道是因为我的oracle是从网上下载的缘故?那个sybase就更不用说了,连通过odbc和oledb都访问不了,odbc还出现错误提示使用oledb就是个死一运行sqlplus就没有反应了。愁人
      

  5.   

    我原来这样设的:
    HS_FDS_CONNECT_INFO = alpha1000.DDGL
    出现如上错误,
    我刚改了成这样了:
    HS_FDS_CONNECT_INFO="DBMS=SYC Adaptive Server Enterprise;ServerName=alpha1000;Database=DDGL;LogId=sa;LogPass="
    纯属瞎蒙吧,结果出现和楼主同样的错误:ERROR 位于第 1 行:
    ORA-02068: 以下严重错误源于DDGLSYBS
    ORA-28511: 丢失与使用
    SID=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.102.77)(PORT=1521)))(CONNECT_DATA=(SID=tg4sybs))) 的多机种远程代理程序的 RPC 连接
      

  6.   

    这个透明网关我都弄了两个多月了,也查找了不少资料但是结果在我这里都是不好用,我估计和我的环境可能有关,我刚刚重做了系统想再试试但是最近工作比较忙所以一直没有时间,我找个时间再看看,我对sybase的访问用odbc和oledb都不行,而对sql server通过odbc和oledb都可以使用透明网关这个两数据库都没有好用过,别人按我的设置设置就可以,很上火!如果我有新进展我会告诉大家的!
      

  7.   

    不再受折磨  我使用透明网关连接SQLServer早就成功,但连接Sybase已经试了2天了,始终没成功.备受折磨,今天下午开始放弃透明网关,改用普通连接(generic connectivity),使用ODBC数据源,设置ORACLE_HOME\HS\ADMIN下的inithsodbc.ora文件,竟然成功了.能用就行了,我也不用去研究问什么透明网关不行了.
      

  8.   

    你太幸福了,我两个都不好用,不过通过odbc和oledb访问sql server倒是没有问题,不过透明网关还不行,现在我机器上sybase就安装不上
      

  9.   

    请教通过透明网关访问sybase数据库出现如下错误是为什么?
    SQL> select "a","b","c" from "test"@sybs;
    select "a","b","c" from "test"@sybs
    *
    ERROR 位于第 1 行:
    ORA-01017: 无效的用户名/口令;拒绝登录
    [Transparent gateway for SYBASE][A07B] Illegal username and/or password were
    supplied for DS TG4SYBS
    ORA-02063: 紧接着2 lines(源于SYBS)