打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Oracle数据库 透明网关
一、设置GATEWAY机器(Gateway可以和Oracle Database在同一台机器上,也可以分开)
1。安装透明网关
2。设置ORACLE_HOME\tg4msql\admin\inittg4msql.ora
修改:
HS_FDS_CONNECT_INFO="SERVER=BEIBEI;DATABASE=Northwind"
3。设置ORACLE_HOME\network\admin\listener.ora
更改为:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\ora90)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = tg4msql)
      (ORACLE_HOME = C:\oracle\ora90)
      (PROGRAM = tg4msql)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = oradb.seraphim)
      (ORACLE_HOME = C:\oracle\ora90)
      (SID_NAME = oradb)
    )
  )
二、设置Oracle Database机器
4。设置ORACLE_HOME\network\admin\tnsnames.ora
(Oracle Server需要此配置使用gateway)
添加:
MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = seraphim)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = tg4msql)
    )
    (HS = OK)
  )
HOST:指Gateway所在的机器。
PORT:在GATEWAY机器中listener.ora文件里指定的监听gateway的端口
SID:必须和GATEWAY机器中listener.ora文件里指定的SID_NAME相同
HS = OK:指定该连接将使用Oracle的异构服务
5。检查ORACLE_HOME\network\admin\sqlnet.ora
如果文件中包含:
names.directory_path = (TNSNAMES, HOSTNAME)
names.default_domain = world
name.default_zone = world
这些行,那么4中的connect_descriptor必须添加.world后缀(如上例中MSQL必须为MSQL.world)
6。修改init.ora文件
设置global_names=false,重启数据库(如果原先的设置是global_names=true的话)。
否则会在执行sql时报错:ORA-02085: 数据库链接MSQL与HO.WORLD相连结
原因如下:The GLOBAL_NAMES parameter when set to TRUE implies that database link name should be
similar to the Global database name to which you are trying to connect.
7。创建Database Link
CREATE PUBLIC DATABASE LINK MSQL CONNECT TO
hr IDENTIFIED BY hr USING 'MSQL';
三、设置SQLServer服务器
8。创建用户hr/hr,并赋予相应数据库(本例中使用数据库Northwind)的检索权限或者写入权限。
9。现在可以通过如下SQL检索SQLServer中的数据了。
select count(*) from [email=all_tables@msql]all_tables@msql[/email];
select "OrderID","ShipName" from "Orders"@msql
select orders."OrderID",orderdet."Quantity",products."ProductName"
from "Orders"@msql orders,"Order Details"@msql orderdet,"Products"@msql products
where orders."OrderID"=orderdet."OrderID" and orderdet."ProductID"=products."ProductID"
注意,对于有大小写的表名和字段名需要加双引号来读取。
建议:为了在Oracle中方便的检索SQLServer的数据,可以在需要检索的表上创建视图(create view),
这样检索时就如同操作本地Oracle表一样。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle中使用透明网关[gateways]数据链接到Sqlserver
oracle通过透明网关,创建dblink,访问ms sql server和其他数据库 -...
通过数据链接(Database Link),从Oracle 9i 连接 SQL Serve...
悠云蓝天
Oracle 透明网关连接DB2
安装oracle 10g的透明网关笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服