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会不太好使