加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle在进行跨库访问时,采用dblink实现

发布时间:2020-12-12 13:16:23 所属栏目:百科 来源:网络整理
导读:? ?首先了解下环境:在tnsnames.ora中配置两个数据库别名:test1/[email?protected]、tets2/[email?protected],在orcl1中创建database link来访问orcl2 ? #测试数据库1 11orcl1?= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT =

?

?首先了解下环境:在tnsnames.ora中配置两个数据库别名:test1/[email?protected]、tets2/[email?protected],在orcl1中创建database link来访问orcl2

?

#测试数据库1
11orcl1?=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)


#测试数据库2
12orcl2?=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

?

?第一步:赋予权限
? ? ? ? ?在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用test1用户登陆11orcl1):

-- 查看test1用户是否具备创建database link 权限
select
* from user_sys_privs where privilege like upper(%DATABASE LINK%) AND USERNAME=test1;

? ? ? ? 如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为test1用户赋予创建权限

-- 给wangyong用户授予创建dblink的权限 
grant create public database link to test1;

? ? ? ? ?此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,test1这个用户已经具备创建database link的权限
?
?第二步;创建database link
? ? ? ? ?我所了解到的创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看
? ? ? ? ?1)pl/sql developer 图形化创建

?

    

?  2)sql语句创建

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

?这样,就完成了简单database简单的创。?

SELECT * FROM [email?protected] order by id

?至此,简单的dblink操作就可以了,对于上面的链接字符串,还可以创建同义词代替,会稍微省点事

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

? ? ?那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替[email?protected]即可,例如查询语句可改成如下方式(插入,修改,删除类似):

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读