如果需要從一個數據庫服務器訪問另外一個數據庫服務器的表或視圖時,可以通過 DBLink 的方法,實現基本等同於本機訪問的效果,如下:
SELECT * FROM A@DBLINK_B ;
創建DBLink的方法有以下兩種:
第一、已經在需要訪問的服務器上創建好了被訪問服務器的服務名:
create database link test
connect to username identified by pwd
using 'server_name';
前提是我們已經建好了名爲 'server_name' 的服務名。
然後可以用以下的方法訪問了:
SELECT * FROM A@TEST;
第二、還沒有建好服務名時,可以用以下的方法:
create database link test
connect to username identified by pwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora8)
)
)';
如果不方便創建服務名,那麼第二種方法還是比較方便的。
在相同的數據庫版本情況下,直接用服務名建連接問題不大
但是我最近用10g連接9i時,用第一種方法連不通
用第二種方法就OK了,具體原因是爲什麼我還沒有查明