程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 在SQL SERVER中訪問ORACLE表的方法

在SQL SERVER中訪問ORACLE表的方法

編輯:Oracle數據庫基礎

在SQL Server中,能否訪問Oracle表,進行查詢操作呢?答案無疑是可以的,下面就為你介紹在SQL Server中訪問Oracle表的實現方法,供您參考。

一、配置

方法一:通過oracle的sql*net客戶端與Oracle數據庫直接相連

1、在SQL Server所在服務器上安裝Oracle客戶端,並配置好客戶端,能用sqlplus
工具連通Oracle數據庫
2、打開ENTERPRISE MANAGER,安全性>鏈接服務器,右鍵選擇“新建鏈接服務器”
3、“鏈接服務器”->ORCL (為鏈接服務器取名字)
選擇“其它數據源”,在“提供程序名稱” 欄中選擇“Microsoft OLE DB Provider
for Oracle”
4、在“產品名稱”->“Oracle”  “數據源”->“ora9i”(此處填tnsnames.ora中的服務名)
在“提供程序字符串”->“MADAORA”
5、切換到“安全性”一頁中,在”本地登錄“中加入Oracle數據庫的用戶名,選擇“用此安全
上下文進行”,填入Oracle數據庫登錄的用戶和密碼
6、切換到“服務器選項”一頁中,將所有選項都選上
7、最後點擊“確定”完成設置
8、在查詢分析器中使用創建好的鏈接服務器ORCL

SELECT * FROM ORCL..SMS.EMP
其中ORCL是鏈接服務器名,SMS是Oracle數據庫的用戶名,EMP是表名

方法二:通過ODBC與Oracle數據庫相連

1、在SQL Server所在服務器上安裝Oracle客戶端,並配置好客戶端,能用sqlplus
工具連通Oracle數據庫
管理工具>數據源中創建一個系統DSN
2、打開ENTERPRISE MANAGER,安全性>鏈接服務器,右鍵選擇“新建鏈接服務器”
3、“鏈接服務器”->ORCL (為鏈接服務器取名字)
選擇“其它數據源”,在“提供程序名稱” 欄中選擇“Microsoft OLE DB Provider
for ODBC”
4、在“產品名稱”->“Oracle”  “數據源”->“ora9i”(此處填創建的系統DSN名)
在“提供程序字符串”->“MADAORA”
5、切換到“安全性”一頁中,在”本地登錄“中加入Oracle數據庫的用戶名,選擇“用此安全
上下文進行”,填入Oracle數據庫登錄的用戶和密碼
6、切換到“服務器選項”一頁中,將所有選項都選上
7、最後點擊“確定”完成設置
8、在查詢分析器中使用創建好的鏈接服務器ORCL
 SELECT * FROM ORCL..SMS.EMP
 其中ORCL是鏈接服務器名,SMS是Oracle數據庫的用戶名,EMP是表名

二、關於查詢中不能使用到索引的問題

在SQLSERVER中查詢一個Oracles上的表:
SELECT * FROM ORCL..SMS.EMP WHERE NAME = 'TOM'
EMP有幾百萬數據,並且在NAME上建了索引,發現查詢非常慢,通過查詢Oracle上的
視圖v$sqlarea,發現WHERE條件根本沒有傳到Oracle服務器上,後來通過幾次測試
後總算解決了該問題,總結如下:

當使用鏈接服務器訪問ORACLE表,查詢Oracle的表時,where子句中字段如果是number類型,則該
where條件不會傳到Oracle服務器;

如果是char類型,則可以傳到Oracle服務器上,但是必須在創建鏈接服務器時一定要
把選項"與排序規則兼容"選上,否則也不會傳到Oracle服務器上的;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved