在ORACLE中尝试连接SQLSERVER,用了两种方法  :  ODBC(PROGRAM=hsodbc) 和  透明网关(PROGRAM=tg4msql)
但用TNSPING 后都提示无监听器。
另外问下PROGRAM这个参数的具体含义,谢谢。

解决方案 »

  1.   

    PROGRAM是告诉Oracle连接哪种异构数据库。
    你的问题估计还是配置的问题。
      

  2.   

    PROGRAM=tg4msql 是固定的写法。 tg4msql标识指向sql server.例子:
    tnsnames.oraSQL2K =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = tg4msql)
        )
        (HS = OK)
      )
    #LISTENER.ORA Network Configuration File: C:\database\oracle\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.LISTENER =
     (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))SID_LIST_LISTENER=
      (SID_LIST=
          (SID_DESC=
             (SID_NAME=tg4msql)
             (ORACLE_HOME=c:\database\oracle)
             (PROGRAM=tg4msql)
           )
          )
    create database link tosql2k connect to sa identified by sa using 'sql2k';
    参考:
    1、Oracle9i Heterogeneous Connectivity Administrator's Guide
      

  3.   

    PROGRAM=tg4msql 是固定的写法。 tg4msql标识指向sql server. 例子: 
    tnsnames.ora SQL2K = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = tg4msql) 
        ) 
        (HS = OK) 
      ) 
    #LISTENER.ORA Network Configuration File: C:\database\oracle\NETWORK\ADMIN\listener.ora 
    # Generated by Oracle configuration tools. LISTENER = 
    (ADDRESS_LIST= 
          (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) 
          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))) SID_LIST_LISTENER= 
      (SID_LIST= 
          (SID_DESC= 
            (SID_NAME=tg4msql) 
            (ORACLE_HOME=c:\database\oracle) 
            (PROGRAM=tg4msql) 
          ) 
          ) 
    create database link tosql2k connect to sa identified by sa using 'sql2k';