一、作用
开发过程中,经常会碰到需要从数据库A中查询另一个数据库B的某张表的数据,这是时候我们可以使用dblink来连接数据B进行数据查询等。
二、创建
两台数据库服务器(本地)和(远程192.168.1.59),本地用户orcl需要访问到远程服务器下mars的数据。
1、确定用户是否有创建DBLink的权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
2、sys登陆,为orcl赋予权限
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to orcl;
注意问题:
1. dblink有三种权限: CREATE DATABASE LINK
(所创建的dblink只能是创建者能使用,别的用户使用不了) CREATE PUBLIC DATABASE LINK
(public表示所创建的dblink所有用户都可以使用) DROP PUBLIC DATABASE LINK
(删除dblink)
2. 最后的orcl
是本地数据库的用户名。
3、orcl用户创建DBLink
create public database link etl59
connect to mars identified by mars的密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)
(HOST = 192.168.1.59)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = xxxx)))';
说明:etl59
为你创建的dblink的名字;mars
为远程数据库用户的用户名;后边是mars对应的密码;Host=
后边是服务器的地址;SERVICE_NAME=
后边是远程数据库的名称。
三、操作
1、使用DBLink
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成表名@dblink的名字
。
select * from T_CLOB@etl59
2、删除DBLink
drop public database link etl59
3、查看DBLink
select * from dba_db_links