異構服務讓不同資料庫引擎互訪。本文記錄 Windows 2000 + Sybase ASA 8.0 Server + Oracle 9.2 Client 環境下,透過 ODBC 系統 DSN 在 Sybase Central 建立 Connection Profile 實現對 Oracle 表的查詢與聯接。
| 元件 | 版本/設定 |
|---|---|
| OS | Windows 2000 Server (繁體中文) |
| Sybase | Adaptive Server Anywhere 8.0 (英文版) |
| Oracle Client | 9.2.0 (英文版) |
| 目標 Oracle DB | 10.100.1.101:1521, SID=test |
# D:\oracle\ora92\network\admin\tnsnames.ora
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.1.101)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test)
)
)
測試:tnsping TEST 成功。
控制台 → 管理工具 → 資料來源 (ODBC)ORACLETESTTEST(必填,對應 tnsnames.ora)Tools → Connection ProfilesNew → 名稱:ORACLE_LINK → Copy Profile 選擇 Adaptive Server Anywhere 8.0 SampleORACLETEST-- Sybase ISQL / Interactive SQL 連接 Sybase ASA 後執行
-- 格式:[連接服務器名]..[Oracle用戶].[表名]
SELECT * FROM ORACLE_LINK..SCOTT.EMP;
-- 聯接查詢
SELECT s.local_col, o.remote_col
FROM local_table s
JOIN ORACLE_LINK..SCOTT.REMOTE_TABLE o ON s.id = o.id;
| 方案 | Oracle 稱呼 | Sybase 稱呼 | 核心機制 | 適用場景 |
|---|---|---|---|---|
| Database Link | DB Link | Proxy Table / CIS | SQL 層轉發、雙向 | Oracle 為主、頻繁跨庫查詢 |
| Oracle Gateway / Heterogeneous Services | DG4ODBC / DG4MSQL | ODBC / JDBC Driver | 非 Oracle 來源、標準化 | Oracle 整合異構源、ETL、報表 |
| Client 端 ODBC 連接 | N/A | Connection Profile | 客戶端驅動、單向 | Sybase 為主、偶發查詢 Oracle |
ORACLE_LINK.."SCOTT"."EMP"。NUMBER ↔ Sybase NUMERIC/DECIMAL、DATE ↔ DATETIME、VARCHAR2 ↔ VARCHAR,精度/小數位需測試驗證。異構連接是「戰術工具」,非「戰略架構」。長期依賴跨庫聯接會造成耦合、效能不可控、故障域擴大。規劃階段應評估:資料同步 (CDC/GoldenGate/ETL)、API 服務化、微服務拆解,將跨庫查詢降為臨時補充手段。