根据网上的范例,我做了如下配置:
1。将SQL数据库建立了ODBC连接 JCZ。登陆名和密码均为JCZ
2。在ORACLE 的\NETWORK\ADMIN中,修改tnsnames.ora,增加如下代码:
JCZ = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 2.2.2.1)(PORT = 1521))
   )
(CONNECT_DATA =   (SID = jcz)    (HS=OK)
   )
)
3。在ORACLE 的\NETWORK\ADMIN中,修改listener.ora,增加如下代码:
   SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = jcz)
      (ORACLE_HOME = F:\oracle\product\10.2.0)
      (PROGRAM =hsodbc)
    )
  )
4。修改ORACLE的\HS\ADMIN内inithsodbc.ora文件:
   HS_FDS_CONNECT_INFO = jcz
     HS_FDS_TRACE_LEVEL = 0
重启监听器,提示:服务 "jcz" 包含 1 个例程。
           例程 "jcz", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
创建连接,访问JCZ,提示无法解析指定的连接标志符。请大家帮忙看下是哪里出错了,谢谢了。

解决方案 »

  1.   

    不是 修改ORACLE的\HS\ADMIN内inithsodbc.ora文件而是 复制inithsodbc.ora 创建新文件inithsJCZ.ora然后修改   HS_FDS_CONNECT_INFO = dsn_sqlserver(数据源名称)
       HS_FDS_TRACE_LEVEL = 1然后SID/SID_NAME = hsJCZ
      

  2.   

    SQL和ORACLE之间的数据查询配置透明网关的步骤
    前一段花了些时间配置 TRANSPARENT GATEWAY
    现在把心得贴出来与大家共享我的OS是WIN2000  
    ORACLE 9.0
    SQLSERVER2000
    HOSTNAME : SVR1
    都使用 tcp/ip 默认端口
    1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
       安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql2: 配置 LISTENER.ORA
        (SID_DESC =
          (GLOBAL_DBNAME = tg4sql) # 可自己命名
          (PROGRAM = tg4msql)
          (SID_NAME = sql2000)  # SID 自己命名
          (ORACLE_HOME = D:\oracle\ora90)
        )3: 在 oracle_home\ora90\tg4msql\admin
       建文件 init<SID>.ora 由于LISTENER里定义SID为 sql2000
       因此文件名为:initsql2000.ora
       其中内容为:
       HS_FDS_CONNECT_INFO=svr1.master # svr1为SQL服务器名
       HS_FDS_TRACE_LEVEL=OFF
       HS_FDS_RECOVERY_ACCOUNT=RECOVER
       HS_FDS_RECOVERY_PWD=RECOVER4: 重启 DATABASE AND LISTENER5: 配置 tnsnames.ora
    tg_sql = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = SVR1)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SID = sql2000) 
        ) 
        (HS=OK) 
      ) 6: 建立 DATABASE LINK
    CREATE PUBLIC DATABASE LINK DB_SQL
    CONNECT TO SA IDENTIFIED BY PASSWORD
    USING 'tg_sql'7: 完成,测试
      select * from t_test@db_sql8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
      如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
      如果为 FALSE, 不必使用全称,当出现 
      “ORA-02019:为找到远程数据库的连接说明”
      时,请使用全称,如:
      select * from t_test@db_sql.US.ORACLE.COM
      

  3.   

    kamet521  兄弟,谢谢你的回答,但还是无法解析指定的连接标志符。