程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 使用OracleDBLink進行數據庫之間對象的訪問操作

使用OracleDBLink進行數據庫之間對象的訪問操作

編輯:Oracle教程

使用OracleDBLink進行數據庫之間對象的訪問操作


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:

查詢另一個數據庫中的數據,其他修改、刪除是一樣的使用,都是另一個數據庫表名@本數據庫創建dblink名稱:

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 視圖名;  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved