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 =
               (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”

原文地址:https://www.cnblogs.com/caroline4lc/p/3885799.html