1. 程式人生 > >Oracle DBLINk的使用

Oracle DBLINk的使用

端口號 esc ice rom cto add ddr Owner object

Oracle中自帶了DBLink功能,它的作用是將多個oracle數據庫邏輯上看成一個數據庫,也就是說在一個數據庫中可以操作另一個數據庫中的對象,例如我們新建了一個數據database1,我們需要操作數據庫database2中的表,或者我們需要操作遠程機器上數據庫database3中的表,我們就可以使用dblink這個強大的功能!

1、我們如果要創建全局的DBLink,就是說無論什麽角色都可以使用,那麽我們需要先確定用戶是否有DBLink權限,如果沒有則需要使用sysdba角色給用戶授權:

查看用戶是有有DBLink權限:

select * from user_sys_privs where
privilege like upper(%DATABASE LINK%);

沒有,則使用sysdba授權:

grant create public database link to dbusername;

2、使用語句創建DBLink:

create database link 要創建的dblink名稱
connect to 要連接數據庫的用戶名 identified by 要連接數據的密碼
using (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 連接數據庫主機IP地址)(PORT = 端口號))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 連接數據庫服務名)
    )
)
;

如果創建全局 dblink,必須使用 systm 或 sys 用戶,在 database 前加 public:

create public database....

例如,在testdb2中創建test_dblink,來操作主機192.168.1.254中testdb1數據庫:

create database link tset_dblink
connect to username identified by password1
using (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb1)
    )
)
;

3、使用DBLink:

查詢另一個數據庫中的數據,其他修改、刪除是一樣的使用,[email protected]

select xxx FROM 表名@dblink名稱;

例如我們在testdb2中使用dblink查看testdb1中tb_user表中的數據:

select * from tb_user@tset_dblink;

查看數據中創建的dblink:

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

刪除相應的dblink:

drop database link dblink名稱;

關閉dblink連接:

alter session close database link dblink_name

創建和刪除視圖:

create or replace view 視圖名 as (select 字段 from 用戶.表名@dblink1);  
drop view 視圖名;

創建後在列表的Database links中

Oracle DBLINk的使用