Oracle使用DBLink跨库查询数据

需求:在A数据库查询B数据库的数据
A数据库ip192.168.1.101,B数据库ip192.168.1.102
在A数据库上作业

create database link link名称 connect to B数据库用户名
identified by B数据库用户密码 using 'B数据库ip:端口/实例名';

赋权需要在sys下执行,赋予test01用户创建dblink的权限

grant create public database link,create database link to test01;

创建公共dblink(所有用户都能使用)

create public database link link01 connect to test01 identified by test01
using '192.168.1.102:1521/db02';--创建的dblink
#或者这样创建:
create public database link link01 connect to test01 identified by test01
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db02)
)
)';

使用test01用户创建私有dblink(只能创建的用户使用)

create database link link02 connect to test01 identified by test01
using '192.168.1.102:1521/db02';--创建的dblink

dblink使用,在A数据库上查询数据

select * from test01@link01;--查询B数据库test01用户下的test01表
select * from test01.test01@link01;

可以在A数据库上创建视图,当B数据库表更新后,A数据库上的视图也会更新
A数据库上有test01用户

create view test01.test01view as select * from test01@link01;
select * from test01.test01view;
select id from test01.test01view;

查询已创建的dblink

select * from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;

删除dblink

drop public database link link01;
drop database link link02;--创建dblink的用户下删除
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值