透明网关在Oracle9中是免费的,在Oracle8中是要另外买的。

解决方案 »

  1.   

    不同数据库平台的互连一般称之为数据库的异构服务,各厂商的具体实现技术不一样:
    在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。 
    而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway)。目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。
        Oracle透明网关软件在Oracle 8i时是需要花钱另买的,大约1万$;到Oracle 9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。(默认是不安装的。)第一步:
        安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件有一行:HS_FDS_CONNECT_INFO="SERVER=192.168.0.1;DATABASE=pubs"
    其中:SERVER=192.168.0.1是SQL SERVER的服务名,后面的DATABASE不言而谕,是数据库名。
    第二步:
    修改 listener.ora
    在SID_LIST中加入以下内容:
    (SID_NAME = tg4msql) # SID自己命名 
    (ORACLE_HOME = c:) 
    (PROGRAM = tg4msql) 
    第三步:
    在tnsnames.ora中填加
    sql2k = 
    (DESCRIPTION = 
      (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) )
      (CONNECT_DATA = (SID = tg4msql) )
    (HS=OK)
     ) 
    第四步:
    现在你就可以SELECT * FROM TABNAME@sql2k 或
    UPDATE TABNAME@sql2k  SET ... WHERE ...注意:
    ORACLE SERVER的初始化参数global_names设为false