为了让oracle直接调用sqlserver里面的表和视图,oracle11g透明网关可以实现这个功能。

一、下载oracleGetway

下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

二、直接解压在WINDOWS机器上解压安装,可以将透明网关安装在sqlserver所在服务器。

三、安装完后修改配置文件

第一个配置文件位置:D:\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora

路径根据自己安装的路径寻找

关键配置:

HS_FDS_CONNECT_INFO=[10.0.3.152]//xmgxy    

#sqlserver数据库IP和数据库名字,安装的时候会让你配置的

HS_FDS_TRACE_LEVEL=OFF

#日志追踪,可以设置ON,会生成日志追踪

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

第二个配置文件位置:D:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

增加以下内容:

SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
     (GLOBAL_DBNAME = xmgxy)          #sqlserver数据库名
     (PROGRAM = dg4msql)              #dg4msql这个为D:\product\11.2.0\tg_1\dg4msql这个目录名,一般不变
     (SID_NAME = dg4msql)             #SID_NAME为D:\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora文件除去init的符号,也是连接的实例名
     (ORACLE_HOME = D:\product\11.2.0\tg_1)
    )
  )

四、启动监听

启动监听位置:D:\product\11.2.0\tg_1\BIN\LSNRCTL.EXE

直接打开,先停止再打开

stop

start即可

可以看到实例dg4msql已经启动

五、打开windows防火墙,默认1521端口,入站规则里放开端口

六、oracle所在服务器操作

--创表dblink语句,如下为dblink连接名为ykt_dblink,帐号为sa,密码为123456,也可以将该文件写入oracle监听文件里面

create public database link ykt_dblink connect to sa identified by "123456" using

'(DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =10.0.3.152)(PORT = 1521))

    (CONNECT_DATA=(SID=dg4msql))    #这个SID为配置文件的SID_NAME,也就是实例名

    (HS=OK)

  )'

--查看dblink语句

select t.* from dba_objects t where object_type='DATABASE LINK';

--验证连接:

select * from sqlserverXXX表@dblink连接名

如:select * from m_ykt_xfjl@ykt_dblink

注:查询某个字段一定要用""才能查询,不然会报错‘无效标识符’

参考文章:
https://www.cnblogs.com/xqzt/p/5688659.html
https://jingyan.baidu.com/article/dca1fa6f42a662f1a44052a4.html