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