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 データベースで実行するのに 0.5 秒かかるものでは非常に遅いので、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
どんな援助でも大歓迎です!!
前もって感謝します!!