Oracle中DBLink的相关操作
Oracle中的DBLink的相关操作
摘要:
DBLink,全称databasse link(数据库连接),就是在一个数据库中创建另一个数据库的连接或着说映射,然后就可以在数据库中通过tableName@DBLink_NAME方式来操作另一个数据库的数据。
一、创建
第一步:赋予权限
在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用wangyong用户登陆orcl):
-- 查看wangyong用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';
如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为WANGYONG用户赋予创建权限
-- 给wangyong用户授予创建dblink的权限
grant create public database link to wangyong;
此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限
第二步;创建database link
创建sql
CREATE PUBLIC DATABASE LINK db_link_name CONNECT TO username IDENTIFIED BY password USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =visist_IP)(PORT =visit_port ))
)
(CONNECT_DATA =
(SERVICE_NAME = db_name)
)
)';
--参数说明
--username 需要访问数据用户名, password 密码, visit_ip 需要访问数据库的ip,visit_port 窗口, db_name数据库名称
注意:1. 创建dblink时候,主要看本地的global_name 是否为true,如果本地的global_name =true,那么你创建的dblink必须和远端数据库的global_name 一样,否则创建了dblink也不能查到数据;
2. 上面这段代码,如果打错,使用dblink时会报错。
这里我们创建的dblink 名字是dblinktest,与其不一样,所以可以做下面修改。
1 alter system set global_names=false;
二、查看
select owner,object_name from dba_objects where object_type='DATABASE LINK';
或者
select * from dba_db_links;
三、使用
select count(*) from tableName@DBLink_NAME;
tableName为表名,DBLink_NAME为创建的DBLink的名字
四、删除
drop public database link DBLink_NAME