首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

SQL Server OLE DB Provider for Oracle 設定指南:註冊機碼、雙 Provider 選擇與連結伺服器建立

     編輯:Oracle 資料庫基礎

額外組態需求:註冊機碼

SQL Server 2000 建立 Oracle 連結伺服器需在 Client 端(SQL Server 主機)登錄特定機碼。機碼檔位於:

C:\Program Files\Common Files\System\Ole DB\mtx*.reg

根據 Windows 版本與 Oracle 版本雙擊對應 .reg 檔匯入。詳細資訊請參閱 SQL Server 線上叢書:「OLE DB Provider for Oracle → Registry Entries」。

兩大 Provider 選擇與建立語法

方法一:Microsoft OLE DB Provider for Oracle (MSDAORA)

sp_addlinkedserver 'OraDB', 'Oracle', 'MSDAORA', 'Ora817'
  • Microsoft 官方支援、建議使用
  • 已停止更新,不支援 Oracle 9i+ 新特性(如 TIMESTAMP、XMLType)
  • 某些 INSERT 操作有限制

方法二:Oracle OLE DB Provider (OraOLEDB.Oracle)

sp_addlinkedserver 'OraDB', 'Oracle', 'OraOLEDB.Oracle', 'Ora817'
  • Oracle 官方維護,支援完整新特性
  • 效能通常優於 MSDAORA
  • 遇到 MSDAORA 問題時建議優先嘗試

建立連結伺服器登入映射

sp_addlinkedsrvlogin 對應 Oracle 認證:

-- 使用預設 Oracle sys 帳戶 (密碼 change_on_install)
EXEC sp_addlinkedsrvlogin 'OraDB', 'false', NULL, 'sys', 'change_on_install';

-- 映射本地 SQL 登入至特定 Oracle 用戶
EXEC sp_addlinkedsrvlogin 'OraDB', 'false', 'sql_login', 'oracle_user', 'oracle_pass';
  • 第 2 參數 'false':不使用自我映射,需明確提供 Oracle 認證
  • 第 3 參數 NULL:所有 SQL 登入皆映射至同一 Oracle 帳戶

Provider 選擇決策樹

  1. 優先嘗試 OraOLEDB.Oracle(功能完整、效能較佳)
  2. 若環境限制必須用 MSDAORA,測試 INSERT/UPDATE/資料型別轉換
  3. 遇到 MSDAORA 限制 → 改用 OraOLEDB.Oracle → 再尋求 Microsoft 支援

查詢語法範例

-- 四部分命名
SELECT * FROM OraDB..SCOTT.EMP;

-- OPENQUERY (在 Oracle 端執行,效能較好)
SELECT * FROM OPENQUERY(OraDB, 'SELECT * FROM SCOTT.EMP WHERE DEPTNO = 10');

-- 執行 Oracle 預存程序
EXEC ('BEGIN SCOTT.MY_PROC(); END;') AT OraDB;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved