Oracle如何跨服務器訪問


當要跨服務器訪問數據庫時,我們可以使用dblink建立連接服務器間的通道。

如果需要創建全局 DBLink,首先要確定用戶有創建 dblink 的權限:

使用此語句查看:select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 

grant create  database link to 用戶名    //給用戶分配創建link權限

創建鏈接方法:

CREATE DATABASE LINK 鏈接名         
CONNECT TO  服務器用戶名 IDENTIFIED BY 服務器密碼
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 登錄服務器ip地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 服務名)
)
)';

創建鏈接后可以通過下面語句查詢:

select * from 表名@鏈接名

 

從遠程服務器查詢或者插入數據過程中有可能遇到問題:

 

發生原因:查詢的表中有CLOB字段的數據

解決方法:

--創建臨時表    
create table temp_test as select * from test@linkoracle where  id =: ID ;
--將遠程數據插入到臨時表中
insert into temp_test select * from test@linkoracle where id = : ID;
--將臨時表數據插入到目標數據庫表中
insert into test select * from test_temp; --提交 commit; --查詢 select * from test_temp;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM