1、在需要操作的服務器用sys/system as sysdba登錄,建立databaselinks
create public database link f35ora //連接名
connect to zhxhjj //另一服務器上的Oracle用戶
identified by "zhxhjj" //密碼
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521)) //192.168.1.2是被查詢的服務器
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
語法:
create public database link 連接名 connect to (用戶名) identified by 用戶密碼
using 's-server';
其中USING內容為你PL/SQL中想要操作的數據庫信息;即我們監聽tnsnames.ora文件中的內容
也可以在tnsnames.ora中增加一段監聽,例如命名為f35server
上面的數據庫連接就可以寫成
create public database link f35ora
connect to zhxhjj
identified by "zhxhjj"
using 'f35server';
2、跨服務器查詢
select * from rzj_depot@f35ora
題外話
如果f35ora連的是Oracle數據庫,則在查詢指定字段時可以直接寫字段名
select depot_no from rzj_depot@f35ora
如果f35ora連的是SQL數據庫,則在查詢指定字段時要在字段上加雙引號
select "depot_no" from rzj_depot@f35ora