PRB: SQL 分散式的查詢與 Oracle 會造成無法開啟資料表時發生錯誤

文章翻譯 文章翻譯
文章編號: 240340 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

徵狀

嘗試使用與例如使用的 MSDAORA OLE DB 提供者的 Oracle 連結伺服器查詢:
select * from OracleServer..demo.Product
				
可能造成類似下列錯誤:
伺服器: 訊息 7306、 層級 16,狀態 2、 行 1
無法開啟資料表 ' 示範 「"產品"' 從 'MSDAORA' 的 OLE DB 提供者。指定的資料表不存在。
[OLE/DB 提供者傳回訊息: 指定的資料表不存在]
[OLE/DB 提供者傳回訊息: ORA 00942: 資料表或檢視不存在]

發生的原因

因為 SQL Server 使用引號括住的名稱,它船查詢提供者時,查詢可能無法運作因為在 Oracle 中區分大小寫。

其他可行方案

在參考 Oracle 連結伺服器中的資料表時,請使用下列規則:
  • 如果資料表和資料行名稱已在 Oracle 建立時沒有引號識別項,使用名稱全部使用大寫字元。比方說下列應該運作 [確定]:
    select * from OracleServer..DEMO.PRODUCT
    						
  • 如果在 Oracle 中建立資料表和資料行名稱為引號識別項,相同大小寫使用的所有字母的名稱,如名稱已在 Oracle 建立時所使用。
使用 OpenQuery 巨集或 OpenRowset 函式時,區分大小寫不是問題。 下列應可使用 [確定]:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
				

其他相關資訊

Microsoft SQL Server 7.0 版提供能力執行針對 OLE DB 提供者的查詢。作法是使用 OpenQuery 巨集] 或 [OpenRowset Transact-SQL 函數,或使用查詢具有四個部分的名稱,包括連結伺服器名稱。例如:
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'
SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')
				

重製行為的步驟

  1. 設定連結伺服器來 Oracle 伺服器:
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'
    go
    EXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'
    go
    						
  2. 指定四部分名稱查詢:
    SELECT * FROM OracleServer..demo.Product
    						
    哪些報告徵狀一節所述的錯誤。

參考

如需詳細資訊,SQL Server 上 SQL 7.0 線上叢書 》 主題 < OLE DB 提供者的 Oracle"和下列文章 「 Microsoft 知識庫 」 中,請參閱與 Oracle 資料來源的分散式的查詢:
220915PRB: SQL 分散式的查詢與 Oracle 需要 Oracle 用戶端

221552PRB: SQL 分散式的查詢具有數值 Oracle 資料行產生錯誤

屬性

文章編號: 240340 - 上次校閱: 2014年2月23日 - 版次: 4.2
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:240340
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com