日期:2014-05-16  浏览次数:20607 次

oracle database link 连接mssql
不同数据库平台的互连一般称之为数据库的异构服务,各厂商的具体实现技术不一样:  
        在SQL   SERVER里面叫做LINKED   SERVER,通过ODBC实现与其它数据库的互联。    
  而ORACLE实现异构服务的技术叫做透明网关(Transparent   Gateway)。目前ORACLE利用透明网关可以实现和SQL   SERVER、SYBASE、DB2等多种数据库的互联。  
          Oracle透明网关软件在Oracle   8i时是需要花钱另买的,大约1万$;到Oracle   9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。(默认是不安装的。)

第一步:安装oracle的组件Transparent Gateway;在安装类型中选择“自定义“;



在组件页面选择”oracle Transparent Gateway for Microsoft Sql server“;



第二步:安装透明网关for   sql   server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件有一行:HS_FDS_CONNECT_INFO="SERVER=192.168.1.46;DATABASE=pubs"  
  其中:SERVER=192.168.1.46是SQL  SERVER的服务器名,后面的DATABASE是数据库名。

第三步:修改D:\oracle\ora92\network\admin路径下的listener.ora文件

在SID_LIST中添加如下:

    (SID_DESC=
    (SID_NAME   =   tg4msql)   --这里可以自己命名   
    (ORACLE_HOME   =   d:\oracle\ora92)    
    (PROGRAM   =   tg4msql) 

第四步:修改D:\oracle\ora92\network\admin路径下的tnsnames.ora文件

添加如下:

mssql=    
  (DESCRIPTION   =    
      (ADDRESS_LIST   =    
      (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   192.168.1.46)(PORT   =   1521))   )  
      (CONNECT_DATA   =   (SID   =   tg4msql)   )  
  (HS=OK)  
    )

第五步:在oracle中建立database link;

在sqlplus中用dba登录;

create database link mssql

connect to sa identified by password

using 'mssql';

这样就可以使用select * from tablename@mssql;来访问mssql数据库了!