某些時候,需要關聯不同的數據庫進行數據查詢、操作等。
在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) ) )
然後點擊“Apply”按鈕即可。
建立好後,會在Database links菜單下顯示。
測試DB link是否有效,執行語句:Select * from student@DEMO
其中,student為遠程數據庫的表名。
2.通過SQL語句創建
create public databaselink V_SERVICE_NAMEconnect to V_USERNAMEidentified 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無效。