倆臺不同的資料庫伺服器,從一台資料庫伺服器的乙個使用者讀取另一台資料庫伺服器下的某個使用者的資料,這個時候可以使用dblink。
其實dblink和資料庫中的view差不多,建dblink的時候需要知道待讀取資料庫的ip位址,ssid以及資料庫使用者名稱和密碼。
建立可以採用兩種方式:
1、已經配置本地服務
create public database
link fwq12 connect to fzept
identified by neu using 'fjept' create database link資料庫鏈結名connect to 使用者名稱 identified by 密碼 using 『本地配置的資料的例項名』;
2、未配置本地服務
create database link linkfwq
connect to fzept identified by neu
using '(description =
(address_list =
(address = (protocol = tcp)(host = 10.142.202.12)(port = 1521))
)(connect_data =
(service_name = fjept)
))';
host=資料庫的ip位址,service_name=資料庫的ssid。
其實兩種方法配置dblink是差不多的,我個人感覺還是第二種方法比較好,這樣不受本地服務的影響。
資料庫連線字串可以用net8 easy config或者直接修改tnsnames.ora裡定義.
資料庫引數global_name=true時要求資料庫鏈結名稱跟遠端資料庫名稱一樣
資料庫全域性名稱可以用以下命令查出
select * from global_name;
查詢遠端資料庫裡的表
select …… from 表名@資料庫鏈結名;
查詢、刪除和插入資料和操作本地的資料庫是一樣的,只不過表名需要寫成「表名@dblink伺服器」而已。
附帶說下同義詞建立:
create synonym同義詞名for 表名;
create synonym同義詞名for 表名@資料庫鏈結名;
刪除dblink:drop public database link linkfwq。
如果建立全域性dblink,必須使用systm或sys使用者,在database前加public。
關於程序建立
最近看 unix環境高階程式設計 其中有講到建立子執行緒用fork的函式呼叫,這個函式特別之處是呼叫一次,返回兩次,分別為0和pid,這裡假定每次建立都是成功的。為啥返回兩次呢,而且值不一樣呢?返回兩次是系統呼叫的實現,需要檢視fork是如何實現的,這裡面就比較複雜了,鄙人現在不懂。返回值不同,建立...
關於winapi建立tabcontrol的方法
建立tabcontrol的步驟 新增控制項 建立子視窗 設定tcitem的成員 控制子視窗的顯示與否 新增方法 設定tabcontrol控制項的標籤 tie.mask tcif text tie.psztext tablabel i senddlgitemmessage hdlg,idc tab1,...
關於GitHub的建立
git是什麼?git是目前世界上最先進的分布式版本控制系統。安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your name git config global user.email email example.com 因為git是分布式版本控...