Oracle之DBLINK 简单使用

第一步:赋予权限

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

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

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

第二步;创建database link  (两种方式,建议第二种)

1)通过pl/sql developer图形化创建

2)通过sqlplus中的sql语句创建

    --测试过,这条sql不行
       create public database link TESTLINK2 connect to xxx identified by "xxx" USING 'orcl'
       
    --下面这条才行:
       create public database link TESTLINK3
       connect to xxx identified by xxx
        using '(DESCRIPTION=
                   (ADDRESS_LIST=
                    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.31.166)(PORT=1521))
                   )
                   (CONNECT_DATA=(SERVER=DEDICATED)
                   (SERVICE_NAME=orcl))
              )'

第三步:操作,只需在sql后面添加@TESTLINK3 即@后面加上你的dblink名称

--增删改的sql都是一样直接添加@dblinkname
select * from tablename@TESTLINK3

扩展:给某个表创建同义词,这样不用添加@dblinkname

-- 创建同义词
create synonym TEST FOR student@TESTLINK3
--查询时直接使用test表名替代student@TESTLINK3
SELECT * FROM TEST order by id

tip:

1,经过本地测试,根本不用在tnsnames.ora中配置第三方实例。。。

2,分区表不能通过dblink方式查询。网上看了好多方法都不行,除非第二个库把给分区表建立一个视图,然后在本地dblink这个视图即可

参考链接:

https://www.cnblogs.com/wangyong/p/6354528.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱跳舞的程序员.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值