【ORACLE】Oracle提高篇之DBLINK的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sdut406/article/details/83759277

什么是DBLINK

当用户要跨本地数据库访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的DBLINK,通过DBLINK可以像访问本地数据库一样访问远程数据库表中的数据。其实,DBLINK和数据库中的VIEW差不多,创建DBLINK的时候需要知道待读取数据库的IP地址、ORACLE_SID以及数据库用户名和密码。

DBLINK权限检查

三种权限:
CREATE DATABASE LINK
DROP PUBLIC DATABASE LINK
CREATE PUBLIC DATABASE LINK

SELECT * FROM USER_SYS_PRIVS T WHERE T.PRIVILEGE LIKE UPPER('%LINK%');

在这里插入图片描述
添加权限:

grant create public database link,create database link,drop public database link to hero;

在这里插入图片描述

DBLINK操作

查看DBLINK
select * from dba_db_links;
或者
select owner,object_name from dba_objects where object_type='DATABASE LINK';
创建DBLINK
-- 创建语句 
-- [DBLINK_NAME]:DBLINk名称 [ORACLE_USER_NAME]:用户名 [ORACLE_USER_PWD]:用户名的密码
create database link [DBLINK_NAME] connect to [ORACLE_USER_NAME] identified by [ORACLE_USER_PWD] using '[ORACLE_CONNECT_URL]'
-- 创建示例
create database link HERO169 connect to hero identified by hero using '192.168.1.122:1521/ora11g'
--或者
create database link HERO169 connect to hero identified by hero using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.122)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora11g)
))'

PS:这些创建的都是hero用户的DBLINK 如果想创建公共DBLINK 需要在database前添加public 即:

create public database link HERO169 connect to hero identified by hero using '192.168.1.122:1521/ora11g'

在这里插入图片描述

删除DBLINK
-- 删除语句 drop database link [DBLINK_NAME]
drop database link HERO169

PS: 如果你想删除公共的DBLINL,需要在database前添加public

导入数据

使用DBLINK有一个重要的操作就是从ORACLE-A数据库导入数据到ORACLE-B数据库
示例:

-- 全表插入
insert into ORACLE_A_TABLE select * from ORACLE_B_TABLE@HER169

当然你也可以直接查询ORACLEB的所有表,只需要带上@HERO169

select * from ORACLE_B_ALLTABLE@HER169 

猜你喜欢

转载自blog.csdn.net/sdut406/article/details/83759277