首页 > 代码库 > db_link
db_link
1、查询
SYSDBA登录, sys登录 SELECT * FROM SYS.link$;
select owner,object_name from dba_objects where object_type=‘DATABASE LINK‘;
select * from all_db_links; 查看创建的DB_LINK
2.创建dblink
前提:创建dblink的用户有对应的数据库权限
create public database link dblinkname
connect to username identified by password
using ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521)))
(CONNECT_DATA =http://www.mamicode.com/
(SERVICE_NAME =servicename)))‘;
如果在create之后不加public,则创建的dblink就不是公共的,就只有创建者可以使用了.
3.使用db link
例如,在本机数据库上创建了一个scott_rmthost的public dblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@scott_rmthot即可以将远程数据库上的scott用户下的emp表中的数据获取到.
也可以在本地建一个同义词来指向scott.emp@scott_rmthost,这样取值就方便多了.
直接查询:select * from table@dblinkname;
在本地创建同义词:create or replace synonym synonymname table@dblinkname
create or replace synonym synonymname table@dblinkname
synonymname是要创建的同义词名称,table为远程目标数据库username下的表名
然后用同义词查询:select * from synonymname
4.删除
注意:用户有create public database link 或者create database link 权限.
注:有时由于数据库版本的不同,可能造成创建DBLINK失败,原因可能是,密码输入的格式不对,需要加上引号。例“apps”