0

Oracle から SQL (実装された異種サービス) への dblink 'POC_HS' を作成しました。DSN (SQL サーバー用) が接続されているデフォルトのデータベースからデータを正常に引き出すことができます。

したがって、この「select * from Test@POC_HS」は、「Test」テーブルがデフォルトのデータベース (システム DSN が接続されている) に存在するため、Oracle データベース上で完全に正常に機能します。

しかし、Testテーブルがデフォルトのデータベースではない「ABC」データベースにある「select * Abc.Test@POC_HS」を実行すると、次のようなエラーがスローされます。

ORA-00942: テーブルまたはビューが存在しません [ODBC を使用した汎用接続][Microsoft][ODBC SQL Server Driver][SQL Server]無効なオブジェクト名 'Abc.Test'.[Microsoft][ODBC SQL Server Driver][SQL Server ]ステートメントを準備できませんでした。(SQL ステータス: S0002; SQL コード: 208)

dblink ユーザーとシステム DSN アカウントは、'Abc' データベースにアクセスできます。

考え?

4

2 に答える 2

0

オブジェクトへのフルパスはDatabase.Schema.Objectそうなので、次のように書く必要があると思います。

select * 
from Abc.dbo.Test@POC_HS

dboもちろん、実際のスキーマ名に置き換えてください。

于 2011-08-10T14:37:45.867 に答える
0

ここで回答してください - http://forums.oracle.com/forums/message.jspa?messageID=9794581

ODBC Sql Server ドライバーでは、データベース全体にクエリを実行できません。別のデータベースにクエリを実行するたびに、odbc の既定のデータベースを変更する必要があります。

于 2011-08-11T11:26:05.563 に答える