SQL Server 2000 → OLE DB Provider for Oracle → Oracle Client (OCI) → Oracle Database
↑
連結伺服器定義
核心元件:Microsoft OLE DB Provider for Oracle(需 Oracle Client 端軟體支援)。
tnsnames.ora路徑通常在 ORACLE_HOME\network\admin\tnsnames.ora
TEST_DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.90)(PORT = 1521))
)
(CONNECT_DATA =
(SID = blue)
(SERVER = DEDICATED)
)
)
驗證: 使用 tnsping TEST_DB 確認連線正常。
TEST_DB(建議與 TNS 別名一致)TEST_DB(必填,對應 tnsnames.ora 別名)企業管理器 → 安全性 → 連結伺服器 → 右鍵「新增連結伺服器」
| 頁籤 | 設定項目 | 值/說明 |
|---|---|---|
| 一般 | 連結伺服器名稱 | LINK_ORA_TEST(自訂) |
| 伺服器類型 | 其他資料來源 | |
| 提供者名稱 | Microsoft OLE DB Provider for Oracle | |
| 資料來源 | TEST_DB(步驟2的 DSN 名稱) | |
| 提供者字串 | User ID=ora_user;Password=ora_pass 或 UID=ora_user;PWD=ora_pass | |
| 安全性 | 對應方式 | 「使用此安全性內容建立」→ 輸入 Oracle 遠端登入帳密 |
| 遠端登入/密碼 | Oracle 實際帳號密碼 | |
| 伺服器選項 | 預設值通常即可 | 視需求調整 RPC、查詢逾時等 |
LINK_ORA_TEST → 「資料表」:應顯示 Oracle 使用者擁有的資料表清單SELECT * FROM [LINK_ORA_TEST]..[ORA_SCHEMA].[TABLE_NAME];
注意: 企業管理器檢視資料表僅顯示中繼資料,實際查詢資料需在查詢分析器使用 T-SQL。
| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| 「找不到提供者」 | OLE DB Provider for Oracle 未安裝/註冊 | 重新安裝 MDAC 2.8+ 或 Oracle Client |
| ORA-12154 / ORA-12541 | TNS 解析失敗 / Listener 未啟動 | 檢查 tnsnames.ora、tnsping、防火牆、Listener 狀態 |
| 「登入失敗」 | 提供者字串/安全性頁籤帳密錯誤 | 確認 Oracle 帳號、密碼、大小寫、權限 |
| 中文亂碼 | 字元集不匹配 (NLS_LANG) | 設定登錄 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG 為 TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950 |
BEGIN DISTRIBUTED TRANSACTION 進行跨資料庫原子性操作連結伺服器打破資料孤島,實現異構資料庫即時整合,是企業資料架構的關鍵拼圖。