192.168.0.2。路徑:$ORACLE_HOME\tg4msql\admin\
HS_FDS_CONNECT_INFO = "SERVER=SQLSERVER_HOSTNAME;DATABASE=pubs"
HS_DB_NAME = pubs
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_RECOVERY_ACCOUNT = RECOVER
HS_FDS_RECOVERY_PWD = RECOVER
HS_FDS_CONNECT_INFO = "SERVER=SQLSERVER_HOSTNAME;DATABASE=Northwind"
HS_DB_NAME = Northwind
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_RECOVERY_ACCOUNT = RECOVER
HS_FDS_RECOVERY_PWD = RECOVER
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC = (GLOBAL_DBNAME=test9)(ORACLE_HOME=d:\oracle\ora92)(SID_NAME=test9))
(SID_DESC = (SID_NAME=pubs)(ORACLE_HOME=d:\oracle\ora92)(PROGRAM=tg4msql))
(SID_DESC = (SID_NAME=northwind)(ORACLE_HOME=d:\oracle\ora92)(PROGRAM=tg4msql))
)
PROGRAM=tg4msql 指定異構服務程序。GLOBAL_DBNAME 僅本地 Oracle 實例需要,Gateway SID 不需設置。PUBS_DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))
(CONNECT_DATA = (SID=pubs))
(HS=OK)
)
NORTHWIND_DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))
(CONNECT_DATA = (SID=northwind))
(HS=OK)
)
HS=OK 告訴 Oracle 這是異構服務,需通過 Gateway 處理。
CREATE DATABASE LINK pubs_link
CONNECT TO "sa" IDENTIFIED BY "password"
USING 'PUBS_DB';
CREATE DATABASE LINK northwind_link
CONNECT TO "sa" IDENTIFIED BY "password"
USING 'NORTHWIND_DB';
-- 測試
SELECT * FROM "pubs"."dbo"."authors"@pubs_link;
SELECT * FROM "Northwind"."dbo"."Customers"@northwind_link;
SELECT/INSERT/UPDATE/DELETE、存儲過程調用。ORA-28500:檢查 HS_FDS_CONNECT_INFO 服務器名/實例名、防火牆 1433 端口。ORA-28511:listener.ora 中 Gateway SID 缺少 PROGRAM=tg4msql。HS_LANGUAGE=AL32UTF8 (初始化文件) 或 NLS_LANG 環境變量。