簡體   English   中英

使用$將SQL Server OpenQuery轉換為Oracle模式

[英]SQL Server OpenQuery to Oracle schema with $

我正在嘗試從SQL Server 2008 R2連接到Oracle Linked Server,但是Oracle Schema中有一個$符號。 不幸的是,我無法更改架構名稱,但是在嘗試使用OpenQuery提取信息時,似乎給我帶來了問題。 有可能逃脫這個角色嗎?

select * 
FROM OPENQUERY(linksrv, 'SELECT * FROM [ABC$SCHEMA].[TABLE] where [ID] = ''ABCD0001'' ') oq

上面給我一個錯誤信息,如下所示:

OLE DB provider "OraOLEDB.Oracle" for linked server "linksrv" returned message "ORA-00903: invalid table name".

下面的查詢有效,但是在Oracle數據庫上花半秒鍾才能運行的東西卻很慢,所以我希望OPENQUERY可能使我的結果更快一些?

SELECT *
  FROM [linksrv]..[ABC$SCHEMA].[TABLE]
  where [ID] = 'ABCD0001'
GO

Version information:
Microsoft SQL Server Management Studio      10.50.2500.0
Microsoft Analysis Services Client Tools    10.50.2500.0
Microsoft Data Access Components (MDAC)     6.1.7601.17514
Microsoft MSXML             3.0 6.0 
Microsoft Internet Explorer         9.0.8112.16421
Microsoft .NET Framework            2.0.50727.5456
Operating System                6.1.7601

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

任何幫助將不勝感激!

提前致謝!!

根據這些注釋,看來Oracle的語法應該有所不同,其中方括號實際上會引起問題而不是防止出現問題:

SELECT * 
FROM OPENQUERY(linksrv, 'SELECT * FROM ABC$SCHEMA.TABLE ...') AS oq;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM