oracle实现夸多个数据库查询
*********************************************************************************************
1.先创建database link 例如:创建database link qas1
create public database link qas1
(SERVICE_NAME = mobile)
)';
最好把它保存到存储过程,方面以后使用。
--------------------------------------------------------------------------------------------2.从其他库中查询数据插入当前的表中如下临时表temp1,从其他10台数据库表table1取数据,其中@qas..就是启用database link
create table temp1
as
(
select * from table1@qas1
union all
select * from table1@qas2
union all
select * from table1@qas3
union all
select * from table1@qas4
union all
select * from table1@qas5
union all
select * from table1@qas6
union all
select * from table1@qas7
union all
select * from table1@qas8
union all
select * from table1@qas9
union all
select * from table1@qas10
);
3.查询t emp1表数据
---------快速创建dbLink和查询已创建的dbLink说明--------------------------------------
正常建立dblink时需要目标端开启监听,源端配置tns,然后还需要查看目标端的数据库GLOBAL_NAMES相关配置,感觉比较繁琐,现整理一个简单的方式,使用手工的方式建立tns,自主命名连接名,所有都在一个模板里,sql如下所示:
create public database link mydblink connect to hyl IDENTIFIED BY hyl
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.88)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)';
说明:
这是一个在oracle中创建DBlink的模板,上面的mydblink是命名的名称,使用dblink的用户为hyl,访问密码为hyl,远程IP地址为192.168.1.88,监听端口号是1521,数据库服务名是prod,这几个地方在配置时是需要注意的。
------查询dblink----------
select * from dba_db_links