oracle中的dblink的基本操作

2021-06-21 02:46:22 字數 3115 閱讀 6103

當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。本文主要介紹關於dblink的常見操作和相關的一點oracle操作。

在建立dblink之前,首先要檢視使用者是否有相應的許可權。針對特定的使用者,使用 sqlplus user/pwd登入後,執行如下語句:

select *from user_sys_privs t where t.privilege like

upper('%link%');

在sys使用者下,顯示結果為:

sys create database link no

sys drop public database link no

sys create public database link no

可以看出在資料庫中dblink有三種許可權:

create database link--所建立的dblink只能是建立者能使用,別的使用者使用不了

create public database link--public表示所建立的dblink所有使用者都可以使用

drop public database link--刪除指定dblink

如果想要改變某個使用者的許可權,需要在sys使用者下修改:

grant

create

public

database link,drop

public

database link to scott;

確定具備了相應的許可權以後,登入sqlplus即可對dblink進行相應的操作了。

1. 檢視dblink,有兩種方式,分別如下:
select owner,object_namefrom dba_objects where object_type='database link';

select *from dba_db_links;

2. 建立dblink,也有兩種方式。

chose_you_like =
(description =
(address_list =
(address = (protocol = tcp)(host = ***.***.***.***)(port = 1521))
)
(connect_data =
(server = dedicated)
(service_name = youroracleservicename)
)
)
然後在sqlplus終端下執行:

create

public

database link link_name connect

touser identified by pwd using 'chose_you_like';

第二種是直接在sql語句中使用配置資訊,語法格式如下:

create

public

database link link_name connect

touser identified by pwd

using
'(description =
(address_list =
(address = (protocol = tcp)(host = ***.***.***.***)(port = 1521))
)
(connect_data =
(server = dedicated)
(service_name = youroracleservername)
)
)';
這裡的user和pwd為指定的oracle資料庫中的使用者名稱和密碼,service_name如果不確定的話,可以通過以下語句獲得:
show parameter service_names;
或者
select name,value

from v$parameter where name='service_names'

service_name的值必須與源資料庫保持一致,否則dblink建立成功後訪問時會報錯,錯誤提示如下:
ora-12514: tns: listener does not currently know of service requested in

connect

descriptor

3. 使用dblink

dblink的使用相對比較簡單,把一般訪問本地表時的表名改為如下格式即可:[user.]table@link_name。例如,在本機資料庫上建立了乙個scott_dblink的public dblink(使用遠端主機
的scott使用者連線),則用sqlplus連線到本機資料庫,執行select * from 

scott.emp@scott_rmthot

即可以將遠端資料庫上的scott使用者下的emp表中的資料獲取到。也可以在本地建乙個同義

詞來指向

scott.emp@scott_rmthost

,方便日常的使用。

4. 刪除dblink
確定要刪除的dblink名字以後,可以通過drop命令直接將其刪除:
drop

public

database link dblinkname;

oracle中dblink的建立

database link是定義乙個資料庫到另乙個資料庫的路徑的物件,database link允許你查詢 遠端表及執行遠端程式。在任何分布式環境裡,database都是必要的。另外要注意的是database link是單向的連線。使用另乙個資料庫時要如 表名 db209 查詢時,如果表中有blob...

Oracle中DBLink的使用

oracle中dblink的使用 dblink 的作用是在區域網內,通過一台伺服器上面的資料庫訪問另外一台伺服器上面資料庫的功能。下面簡單的介紹dblink的配置 伺服器a ip 10.10.10.107,資料庫例項名 orcl 資料庫登入 test test 伺服器b ip 10.10.10.22...

oracle 中 dblink 的建立方法

如果需要從乙個資料庫伺服器訪問另外乙個資料庫伺服器的表或檢視時,可以通過 dblink 的方法,實現基本等同於本機訪問的效果,如下 select from a dblink b 建立dblink的方法有以下兩種 第一 已經在需要訪問的伺服器上建立好了被訪問伺服器的服務名 create databas...