当前位置: 代码迷 >> Oracle管理 >> oracle dblink 有关问题
  详细解决方案

oracle dblink 有关问题

热度:339   发布时间:2016-04-24 04:09:51.0
oracle dblink 问题
sql 语句如下图所示

如果我想每一个select子查询都使用dblink去链接其他数据库查询,代码该怎么写呢?能不能把所有子查询当成一个整体使用dblink去查询?而不是每一个子查询都在from 表明@dblink这样?谢谢各位
------解决思路----------------------
如果不是本数据库的表的话,是通过dblink连接的,那么访问该表的时候,就需要加上@dblink名称。

drop public database link AAA_LINK ;
create public database link AAA_LINK connect to username identified by pwd using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 1.5.1.3)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = AAA)
    )
  )';
验证:
Select * from config_infos@AAA_LINK;


如果想把所有子查询当成一个整体使用dblink,
可以考虑在dblink所连的数据库中将子查询创建个视图view,
到时候直接访问view@aaa_link就可以
------解决思路----------------------
没办法直接那样写吧
可以考虑在当前数据库建立视图或是同义词,间接实现不写@dblink的目的
------解决思路----------------------
用同义词,不过若是远程表中含有大对象字段,如BLOB、CLOB,则DBLINK会不太好使
  相关解决方案