-- 查看用戶是否具備創建database link權限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='用戶名';
-- 如果沒有權限,則給用戶授予創建dblink的權限
grant create public database link, drop public database link to 用戶名;
-- 查詢現有dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';
-- 刪除dblink
drop public database link dnlink名稱;
創建dblink有兩種形式,一種是把描述寫在tnsnames.ora中,一種是把描述寫在創建語句中.
第一種:
在tnsnames.ora添加配置
目標服務器的Oracle服務名 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主機名或url)(PORT = 端口))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 目標服務器的Oracle服務名)
)
)
創建語句如下:
create public database link dnlink名稱
connect to 用戶 identified by "密碼"
using '目標服務器的Oracle服務名';
第二種:
create public database link dnlink名稱
connect to 用戶 identified by "密碼"
using
' (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主機名或url)(PORT = 端口))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 目標服務器的Oracle服務名)
)
)';
-- 跨庫查詢
select * from 表名@dnlink名稱