Oracle跨資料庫查詢並插入

2021-09-01 16:24:58 字數 1933 閱讀 6603

1.

為你需要操作的遠端資料庫伺服器建立本地服務名:

在本地資料庫安裝檔案中,找到$oracle_home/network/admin/tnsnames.ora檔案,

末尾新增

--第乙個遠端伺服器的服務名:myoracle1

myoracle1 =

(description =

(address_list =

(address = (protocol = tcp)(host = 221.131.228.256)(port = 1521))

)(connect_data =

(service_name = orcl)

)) --第乙個遠端伺服器的服務名:myoracle2

myoracle2 =

(description =

(address_list =

(address = (protocol = tcp)(host = 211.161.192.46)(port = 1521))

)(connect_data =

(service_name = orcl)

)) --如果有更多的遠端資料庫需要同時操作,可以依次增加!

--如果本機用的windows作業系統,可以使用oracle自帶的net manager 工具,以圖形化的操作方式來建立服務名!

2. 在本機上使用sysdba的角色登入本地資料庫,建立database link: 

執行如下sql語句:

--遠端伺服器一的對應database link

create public database link mydblink1 --可以隨便取名,當然,不能是關鍵字或保留字

connect to dbusername1 identified by dbpwd1

using ' myoracle1';

--遠端伺服器二的對應database link

create public database link mydblink2 --可以隨便取名,當然,不能是關鍵字或保留字

connect to dbusername2 identified by dbpwd2

using ' myoracle2';

--其中using後面填對應的資料庫服務名,dbusername1,dbpwd1填對應的資料伺服器登入名,密碼

--刪除database link

drop database link mydblink1; --本例中是mydblink1和mydblink2

3

操作遠端伺服器上的表,在要在對應的表後面加上@ linkname(對應的資料庫鏈結名),就跟操作本地資料庫中的表差不多,可以從不同資料庫伺服器中提取資料!很方便!

insert into kc50@mydblink1 select * from kc50@ mydblink2 where rownum<=10000;
4    如果需要頻繁的使用遠端伺服器中的表,上面的寫法有點煩人,這時候可以考慮為這個表建立乙個同義詞

create synonym syname for kc50@mydblink1;
以後在要使用kc50@mydblink1的時候用syname就可以了!

刪除同義詞的語法為:

drop synonym syname;
5

檢視當前資料庫的db link;

select * from user_db_links; --使用者 db link

select * from dba_db_links; --dba db link

select * from v$dblink; --當前db link

Oracle跨資料庫查詢並插入

oracle跨資料庫查詢並插入 工作中需要從乙個資料庫中的表gis weichai data 1s中的資料匯入到另個一資料庫的表gis weichai data 1s中,資料庫伺服器都是遠端的!我的實現方法是在本地使用pl sql操作兩個遠端伺服器,實現方式如下 1 為你需要操作的遠端資料庫伺服器建...

Oracle跨資料庫查詢並插入

工作中需要從乙個資料庫中的表gis weichai data 1s 中的資料匯入到另個一資料庫的表gis weichai data 1s 中,資料庫伺服器都是遠端的分別為 221.131.228.256 211.161.192.46 我的實現方法是在本地使用pl sql操作兩個遠端伺服器,實現方式如...

Oracle跨資料庫查詢並插入

工作中需要從乙個資料庫中的表 gis weichai data 1s 中的資料匯入到另個一資料庫的表 gis weichai data 1s 中,資料庫伺服器都是遠端的 分別為 221.131.228.256211.161.192.46 我的實現方法是在本地使用 pl sql 操作兩個遠端伺服器,實...