一、DBLINK(Database Link)概念

dblink,顾名思义就是数据库的链接。当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过该dblink就可以达到访问远程数据库中表中数据的目的。

注意:dblink是单向的连接。

二、DBLINK中的一些语法

1、查看库中已建的dblink:

select * from dba_db_links;

或者

select owner,object_name from dba_objects where object_type='DATABASE LINK';

通过以上sql可以查询出相应的数据库下已建的dblink;

2、创建dblink:

前提:创建dblink的用户必须有创建的权限,可以使用下面语句进行授权:

grant create public database link,create database link to myAccount;

dblink创建语法如下:

CREATE [PUBLIC] DATABASE LINK dblinkname 
CONNECT TO username IDENTIFIED BY password
USING 'connectstring'

说明:

1)权限:如果在create之后不加public,则创建的dblink就不是共用的,就只有创建者自己可以使用,一个公用的dblink对于数据库中所有用户都是可用的。

2)link:当本地GLOBAL_NAME=TRUE时,link名必须与远程数据库的全局数据库名global_name相同,否则会报如下错误:

Oracle ORA-02069: 此操作的 global_names 参数必须设置为 TRUE

3)'connectstring':连接字符串,在配置文件tnsnames.ora中定义远程数据库的连接串。

注*若在远程数据库的tnsnames.ora中未配置本地数据库的connectstring,则在本地创建dblink的时候必须使用字符串创建,database不可使用别名。

4)username、password:远程数据库的用户名,口令。如果不指定,则默认使用当前的用户名和口令登录到远程数据库。

3、测试创建的dblink是否可用:

SELECT * FROM worker@zrhs_link;

若可查出数据,则表明dblink是通的可用~~~

4、删除dblink:

1)删除public的dblink:

DROP PUBLIC database link link_name;

2)删除非public的dblink:

DROP database link link_name;

注*只有owner自己能删除自己的非public类型dblink。

05-11 09:36