oracleDatabase Link基本语法

数据库链接(Database Link)告诉Oracle如何从一个库到达另一个数据库。



需要在两个Oracle数据库之间手工同步数据时,DBLink是最方便快捷的手段之一,创建DBLink的方式一般是这样:

create public database link <DBLink名称> connect to <被连接库的用户名> identified by <被连接库的密码> using '<Oracle客户端工具建立的指向被连接库服务名>';



例如:

create public database link XMDS_KF connect to XMDS identified by XMDS using 'XMDS_KF';



但这种方式有个缺点就是必须要在服务器建立一个被连接库的服务名,如果不建则会报错:

ORA-12154: TNS: 无法处理服务名

,但如果直接使用地址来建DBLink,就可以省去配置服务名的麻烦了:

create public database link XMDS_KF connect to XMDS identified by XNDS using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 145.24.16.182)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XMDS)
)
)';



这样创建,在tnsnames.ora中不会有这段监听。





基本操作:

创建DBLINK:
使用pl/sql developer建:找到Database Links,右键新建
名称:dblink名 连接到用户名:目标数据库登录名 密码:目标数据库密码
数据库:目标数据库服务名

查询表:
select * from 用户名.表 @DBLINK名称 where 条件;



查询函数:
select 用户名.函数名@DBLINK名称(参数) from dual;



在本地函数中调用dblink函数:
Result:=用户名.函数名@DBLINK名称(参数);



复制dblink中的表结构与数据:
CREATE TABLE 表名 AS SELECT * FROM 用户名.表名@DBLINK名称 where 条件


索引这些可以使用手工建:在pl/sql developer的SQL窗口中选中表名再查看表结构

备注:
如果机子上同时安装Oracle的数据库与客户端,要用数据库建需连接dblink的数据库的服务
在过程中创建表时要先给权限execUTE immediate 'Grant Create any table to 用户名';
从dblink的从张表中取数只需在每个表名后加@dblink名称
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值