设为首页 加入收藏

TOP

使用OracleDBLink进行数据库之间对象的访问操作
2015-07-24 10:34:26 来源: 作者: 【 】 浏览:1
Tags:使用 OracleDBLink 进行 数据库 之间 对象 访问 操作

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作数据库database2中的表,或者我们需要操作远程机器上数据库database3中的表,我们就可以使用dblink这个强大的功能!

1、我们如果要创建全局的DBLink,就是说无论什么角色都可以使用,那么我们需要先确定用户是否有DBLink权限,如果没有则需要使用sysdba角色给用户授权:

查看用户是有有DBLink权限:

select * from user_sys_privs where privilege like upper('%DATABASE LINK%');  
没有,则使用sysdba授权:?
grant create public database link to dbusername; 
2、使用语句创建DBLink:
create database link 要创建的dblink名称
connect to 要连接数据库的用户名 identified by 要连接数据的密码
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = 端口号))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 连接数据库服务名)
    )
)';
如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public:
create public database....
例如,在testdb2中创建test_dblink,来操作主机192.168.1.254中testdb1数据库:
create database link tset_dblink
connect to username identified by password1
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb1)
    )
)';
3、使用DBLink:

查询另一个数据库中的数据,其他修改、删除是一样的使用,都是另一个数据库表名@本数据库创建dblink名称:

select xxx FROM 表名@dblink名称; 

例如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:

select * from tb_user@tset_dblink;

查看数据中创建的dblink:

select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;
删除相应的dblink:
drop database link dblink名称;
关闭dblink连接:?
alter session close database link 'dblink_name'
创建和删除视图:?
create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);  
drop view 视图名;  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OracleGoldenGate(以下简称ogg)在.. 下一篇oracle列合并

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)
·Python 教程 - W3Sch (2025-12-26 12:00:51)
·Python基础教程,Pyt (2025-12-26 12:00:48)