1、在安装了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows机器上(IP:192.168.0.1),
产品要选了透明网关(Oracle Transparent Gateway)里访问Microsoft SQL Server数据库cat$ORACLE9I_HOME\tg4msql\admin下新写initcat.ora配置文件.
initcat.ora内容如下:
HS_FDS_CONNECT_INFO="SERVER=SQLSERVER_HOSTNMAE;DATABASE=cat"
HS_DB_NAME=cat
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER$ORACLE9I_HOME\network\admin 下listener.ora内容如下:
LISTENER =
  (DESCRIPTION_LIST =
   (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
  )
  )
  )SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = dog)
  (ORACLE_HOME = d:\oracle\ora92)
  (SID_NAME = dog)
 )
  (SID_DESC=
  (SID_NAME=cat)
  (ORACLE_HOME=d:\Oracle\Ora92) 
  (PROGRAM=tg4msql)
  )
)
 
切记! 重启做gateway的windows机器上的(IP:192.168.0.1)TNSListener服务. 下一步猫猫喝杯茶再说,你先做吧,那个listener.ora对括号配对要求很严格的,你自己数数吧,猫咪没太算哦

解决方案 »

  1.   

    修改tnsnames.ora
    怎么修改啊。谢谢
      

  2.   

    在ORACLE9I的服务器端配置tnsnames.ora, 给它增增肥: 
    cat=
      (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
        (SID = cat)
        )
        (HS = cat) 
       ) 保存tnsnames.ora后,在命令行下
     tnsping cat,哈,要是出现
     Attempting to contact (DESCRIPTION = (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)
    (PORT = 1521))) (CONNECT_DATA = (SID = cat)) (HS = cat))
    ...你再以DBA身份global_names参数 
    alter system set global_names=false;接下来就是设置连接罗
    要保证你SQL Server的cat下的用户已经有权限去登录abc哦create public database link cat 
    connect to abc identified by 密码 using  cat;呼呼,现在总算可以访问SQL Server下数据库里的东东了 其实8i也可以的啦,为什么要求这种连接的都是9i呢?!!!小气鬼,就10分耶,气死啦,快结帐,给猫咪分分,不给吵晕你!!! 
      

  3.   

    猫猫还是不行啊。《《要保证你SQL Server的cat下的用户已经有权限去登录abc哦》》这句话什么意思啊。
    abc 是什么啊。cat是数据库,