建立鏈接前要先有到遠程數(shù)據(jù)庫的命名服務(連接字符串),就是tnsnames.ora中描述的那個,如'oradXP' 先測試一下:$tnsping oradxp Attemping to contact(...) OK(30毫秒). 說明對遠程數(shù)據(jù)庫oradxp可訪問。
創(chuàng)建數(shù)據(jù)庫鏈接的語法為: CREATE PUBLIC DATABASE LINK oradxp.cug.edu.cn USING 'oradxp'; 其中 oradxp.cug.edu.cn 必須是遠程數(shù)據(jù)庫的全局名(SID),'oradxp'就是到遠程的連接字符串。遠程數(shù)據(jù)庫的全局名可以通過登陸遠程機, SELECT * FROM global_name; 得到。
現(xiàn)在你就可以用鏈接oradxp.cug.edu.cn訪問遠程數(shù)據(jù)庫了 如 SELECT * FROM global_name@oradxp.cug.edu.cn; 看看得到的是不是遠程機的全局名。 所有SELECT 語句后面跟上鏈接名都是對遠程機的訪問。
注重:登陸名口令就是當前登陸本機的用戶名和口令。也就是假如你用的是public鏈接,那么在遠程就要有一個和本機相同的用戶/口令才行。如:你以aaa/aaa登錄本機,然后執(zhí)行 SELECT * FROM BBB.bbb@oradxp.cug.edu.cn; 那么對遠程數(shù)據(jù)BBB.bbb的訪問用戶為aaa口令為aaa 也就是在本機和遠程機上都有用戶aaa口令都為aaa才能執(zhí)行成功!
關于私有鏈接: CREATE DATABASE LINK oradxp.cug.edu.cn CONNECT TO system IDENTIFIED BY aaa; 這就建立了system的私有鏈接。 私有鏈接和public鏈接的差別就是登錄名口令的限制。也就是 你不管用什么用戶登錄本機,執(zhí)行 SELECT * FROM BBB.bbb@oradxp.cug.edu.cn; 訪問遠程機數(shù)據(jù)BBB.bbb的用戶和口令都為system/aaa