我正在尝试从 SQL Server 2008 R2 连接到 Oracle 链接服务器,但 Oracle 架构中有一个 $ 符号。不幸的是,我无法更改架构名称,但在尝试使用 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
任何帮助将不胜感激!!
提前致谢!!