在网上找到一些例子,并已经实现了从oracle中读取SQLServer的数据.所以请不要再把如果实现Oracle与SQL Server的互连的贴上来了.
现在的问题是:
    网上找的例子中编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:
HS_FDS_CONNECT_INFO="SERVER=servername;DATABASE=pubs"
这里只能连接一个数据库啊.
如果要同时连接2个以上的数据库怎么办?
谢谢.

解决方案 »

  1.   

    如果要同时连接2个以上的数据库,
    只能配制不同的SID,毕竟两个数据库是独立的。一个数据库损坏,不影响另外数据库的工作。
      

  2.   

    你可以再配置一个initsid.ora其中sid可以随便起一个名字就可以了。然后你在重新配置一下listener和tnsnames加上相应的内容就可以了,连接几个都没有问题的
      

  3.   

    配制不同的SID,这是肯定的。但ora92\tg4msql\admin文件夹下只有一个inittg4msql.ora文件,inittg4msql.ora文件中只有一行“HS_FDS_CONNECT_INFO="SERVER=;DATABASE=”供修改啊。
      

  4.   

    你需要建立多个inittg4msql.ora这个文件名是有两部分构成的第一部分是init第二部分是sid如果你需要访问多个sql server你就需要在ora92\tg4msql\admin\里建多个和inittg4msql.ora一样的文件这样就可以了而不是在一个inittg4msql.ora里有多个“HS_FDS_CONNECT_INFO”这个参数。
      

  5.   

    楼上说的很对,我现在就是不知道怎么来建多个和inittg4msql.ora一样的文件,通过什么方式,怎么使建的文件被指定的sid所识别。谢谢。加分了。
      

  6.   

    你复制一下inittg4msql.ora然后修改一下文件名。比如说你现在要连接另外一个sql server的sid定为msqlsvr1那么你就把inittg4msql.ora复制一份然后将文件名字改成initmsqlsvr1.ora然后配置这个文件里的server和database完成这个后你就可以在你的listener.ora填加这个sid了,之后再在tnsnames.ora里配置一个服务名,重新启动一下监听器就可以了,你如果要连接多个sql server那你就确定多个sid然后按照上面的步骤配置就可以了
      

  7.   

    楼上大哥,我这样试了,可是不行服务名是SQL2000,当查询数据时出现如下错误:SQL> select count(*) from orders@sql2000;
    select count(*) from orders@sql2000
                                *
    ERROR 位于第 1 行:
    ORA-28545: 连接代理时 Net8 诊断到错误
    NCRO:无法执行 RSLV 连接
    ORA-02063: 紧接着2 lines(源于SQL2000)