oracle在進行跨庫訪問時,可以通過創建dblink實現,今天就簡單的介紹下如果創建dblink,以及通過dblink完成插入、修改、刪除等操作。
首先了解下環境:在tnsnames.ora中配置兩個數據庫別名:orcl(用戶名:test 密碼:654321)、orcl2(用戶名:test 密碼:123456),在orcl中 創建database link來訪問orcl2
一、授權
在創建DB link之前,我們需要判斷,登陸的用戶是否具備創建DB link 的權限,所以我們執行以下的語句(用test用戶登陸orcl):
-- 查看test用戶是否具備創建database link 權限 select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='TEST';
如果查詢有返回行,則表示具備創建database link權限,否則,則需要使用sys登陸orcl為test用戶賦予創建權限
-- 給test用戶授予創建dblink的權限
grant create public database link to test;
二、創建DBLINK
方式一:通過PL/sql developer圖形化創建
完成后點擊“Apply”按鈕即可創建成功。
方式二:通過sqlplus中的sql語句創建
-- 注意一點,如果密碼是數字開頭,用“”括起來
create public database link TESTLINK2 connect to test identified by "123456" USING 'ORCL2'
三、操作
1、我們在orcl2庫中新建一張表並插入數據
2.我們通過database link 在orcl中訪問這張屬於orcl2庫中test用戶的表COMPANY
語法: from 目的庫表名@DBLINK名
select * from company@TESTLINK1
3.我們利用同樣的方式,進行插入,修改,刪除操作,依次看截圖,每一次操作后均執行查詢語句,可對比執行效果
(1)插入
(2)修改
(3)刪除
(4)對於上面的鏈接字符串,還可以創建同義詞代替
-- 創建同義詞
create synonym TESTSYNONYM FOR company@TESTLINK1;
-- 查詢ORCL2中test用戶的表COMPANY
SELECT * FROM TESTSYNONYM order by id