oracle dblink的创建

oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink

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

oracle dblink的创建_第1张图片
001.png

第一步:赋予权限

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

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

-- 给wangyong用户授予创建dblink的权限
grant create public database link to wangyong;
此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限

第二步;创建database link

     我所了解到的创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看

     1)pl/sql developer 图形化创建
oracle dblink的创建_第2张图片
002.png

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

2)sql语句创建

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

第三步:操作

      首先,我们需要在ORCL2库中新建一张表,并插入部分数据,如下图:
oracle dblink的创建_第3张图片
003.png

现在,我们通过database link 在orcl中访问这张属于orcl2库中WANGYONG的表COMPANY

oracle dblink的创建_第4张图片
004.png

从截图中可以看到,在ORCL中可以成功访问到ORCL2中用户WANGYONG的表

ORA-12170:
在创建好dblink之后发现总是报连接超时的错误,可以查看网络是否通
telnet 197...86 1521(端口号)
结果连接超时,网络的原因

转载自:
https://www.cnblogs.com/wangyong/p/6354528.html

你可能感兴趣的:(oracle dblink的创建)