oracle创建dblink

当用户要在本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
下面讲介绍如何在本地数据库中创建dblink。
1.在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
2.登录scott用户,创建dblink
语法:
create public database link dblink名字
connect to 远程数据库登录用户名 identified by 远程数据库登录密码
using ‘远程数据库的实例名’;
a.本地数据库tnsnames.ora文件中有配置要访问的远程数据库
如:aaa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)
则远程数据库的实例名可以直接填aaa即可。
如下:
create public database link A
connect to fhl identified by fhl
using ‘aaa’;
b.如果本地数据库tnsnames.ora文件中没有配置要访问的远程数据库
则创建dblink时,可以直接将a中aaa = 后面的内容直接写在远程数据库的实例名的地方。
如下:
create public database link A
connect to fhl identified by fhl
using ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)’;
3.就可以直接查询fhl数据库中的表了,但是必须在表名后面加上@A
SELECT * FROM 表名@A
如果觉得这样很麻烦,可以创建 【表名@A】 的同义词,即取别名
create or replace synonym a for 表名@A;
执行时发现出错ORA-01031:权限不足
再次用sys dba用户登录给scott用户赋予创建同义词的权限
grant CREATE SYNONYM to scott;
再次用scott登录执行创建同义词语句,成功!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值