oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入、修改、删除等操作。

首先了解下环境:在tnsnames.ora中配置两个数据库别名:orcl(用户名:test 密码:654321)、orcl2(用户名:test 密码:123456),在orcl中     创建database link来访问orcl2

 

 

一、授权

在创建DB link之前,我们需要判断,登陆的用户是否具备创建DB link 的权限,所以我们执行以下的语句(用test用户登陆orcl):

-- 查看test用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='TEST';
 如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为test用户赋予创建权限
-- 给test用户授予创建dblink的权限
grant create public database link to test;

二、创建DBLINK

方式一:通过PL/sql developer图形化创建

 

 完成后点击“Apply”按钮即可创建成功。

 

方式二:通过sqlplus中的sql语句创建

-- 注意一点,如果密码是数字开头,用“”括起来
create public database link TESTLINK2 connect to test identified by "123456" USING 'ORCL2'

 

三、操作

1、我们在orcl2库中新建一张表并插入数据

 

 

2.我们通过database link 在orcl中访问这张属于orcl2库中test用户的表COMPANY

语法:  from 目的库表名@DBLINK名

select * from company@TESTLINK1

 

 

 3.我们利用同样的方式,进行插入,修改,删除操作,依次看截图,每一次操作后均执行查询语句,可对比执行效果

(1)插入

 

 

(2)修改

 

 

 (3)删除

 

 

 

(4)对于上面的链接字符串,还可以创建同义词代替

-- 创建同义词
create synonym TESTSYNONYM FOR company@TESTLINK1;

-- 查询ORCL2中test用户的表COMPANY
SELECT * FROM TESTSYNONYM order by id

 

转自:https://www.cnblogs.com/zhm1985/p/12106306.html