[英]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.