某些時候,需要關聯不同的資料庫進行資料查詢、操作等。
在Oracle中,關聯不同的資料庫進行表關聯,就要用到了資料庫連接(DB link)。
建立DB link有兩種方法:通過SQL語句建立,通過可視化介面建立(其實也是執行的SQL語句)。
1.通過PL/SQL Developer 工具建立
Name:此DBLINK的名字,你自己隨便起。比如:DEMO
UserName:資料庫登陸使用者名稱
Password:資料庫登陸密碼
Database:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DEMO)))
以上紅色字型內容從以下地方可查詢:\product\10.2.0\client_1\network\admin\tnsnames.ora
DEMO = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DEMO) ) )
將上面的"DEMO="去掉,其餘內容把分行符號、空格去掉組成一個字串即可。
然後點擊“Apply”按鈕即可。
建立好後,會在Database links菜單下顯示。
測試DB link是否有效,執行語句:Select * from student@DEMO
其中,student為遠端資料庫的表名。
2.通過SQL語句建立
create public database link V_SERVICE_NAME connect to V_USERNAME identified by V_PASSWORD using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=V_SERVICE_NAME)))';
其中:
V_SERVICE_NAME表示服務名,可通過SQL語句查詢:SELECT * FROM GLOBAL_NAME; --查看服務名
V_USERNAME表示登入遠端資料庫的帳號
V_PASSWORD表示登入遠端資料庫的密碼
PS:經本人測試,當tns字串中帶有分行符號時,該DB link無效;當DB link名稱不是服務名時,該DB link無效。