一、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。