1 回答

TA貢獻1848條經驗 獲得超10個贊
通過database links的方法具體如下:
假設DB1、DB2兩個數據庫,現在要在DB1中使用DB2的表,那么在DB1數據庫中創建db link的命令如下:
一、創建database link
-- Create database link
create database link db_1
connect to db_2_user identified by "db_2_user_password"
using 'DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db_2_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_2_server)
)
)';
其中,
db_1是db link的名稱;
db_2_user是DB2這臺機器上源數據庫的用戶名;
db_2_user_password是密碼;
db_2_ip是DB2數據庫地址,
db_2_server是DB2數據庫服務名。
這樣就可以,如果要訪問B數據庫的test表,可以“表名@數據鏈接名”這樣用,如:
select * from test@db_1;
二、使用
注意點:如果在DB1的oracle clinet上通過database links訪問DB2的表,需要在DB1的服務器的tnsnames正確指向DB2。假設DB_LINK是想從DB1連接到DB2,需要配置DB1機器上的tnsnames正確指向DB2。如果確認DB1上的tnsnames中配置正確;那么再確認正確的tnsnames被使用了,也就是說DB1機器上系統的環境變量指向哪個oracle的bin目錄,使用的是不是配置正確的那個tnsnames文件。兩個tnsnames正確配置完成后就可以使用了。
添加回答
舉報