Oracle创建dblink(实现跨数据库查询)纯干货

介绍        

创建dblink实现跨库查询,创建本地数据库对远端数据库的dblink后,就可以像操作本地数据库一样操作远端数据库,这是Oracle给我们提供一个功能,让我们的跨库查询变得非常简单便捷。

使用

1.查看用户是否有创建dblink的权限(一般管理员用户SYS都有权限)

select * from user_sys_privs t where t.privilege like upper('%link%');

2. 如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public。

CREATE PUBLIC DATABASE LINK 数据库链名称 CONNECT TO 登录用户名 IDENTIFIED BY 密码 USING '(DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))
     (CONNECT_DATA =
        (SERVICE_NAME = 对方Oracle服务器服务名)
     )
   )' ;

注:数据库链名称指添加到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名

3、要查询对方数据库的表TableName语句如下:

SELECT 字段名 FROM TableName@数据链名称;

如:select * from ndn_gg_code@dblink;

4、删除DBLINK

DROP DATABASE LINK [name];  
或  
DROP PUBLIC DATABASE LINK [name];  

实操

第一步:命令行创建,建立链接

CREATE database link A CONNECT to ndncnooc01 IDENTIFIED by "E0oOv0s#i$I1Ld" using '(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 10.*.*.*)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ndnqas)))';

使用plsql创建数据库连接

第二步:查询创建的连接

SELECT * FROM DBA_DB_LINKS;

第三步:操作数据表

查询数据

SELECT * FROM BASE_CO_0821@A;

复制表

create table BASE_CO_0821 as select * from A.BASE_CO_0821@A;//复制表结构以及数据
create table BASE_CO_0821 as select * from BASE_CO_0821@A where 1=2;//复制表结构

第四步:删除连接:

DROP DATABASE LINK A;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值