0

別のサーバーのキューからデキューしようとしています。伝播を使用して、データを必要とするサーバーにデータを取得できません。デキュー オプションのキューの名前に dblink を入れると、エラーが発生します。

Error at line 9
ORA-25200: invalid value prim_queues.prim_trade_q@prim_dbln, QUEUE_NAME should be [SCHEMA.]NAME
ORA-06512: at "SYS.DBMS_AQ", line 619
ORA-06512: at "PSINET_AQ.AQ_INBOUND_TRADES_PKG", line 20
ORA-06512: at line 10

ですから、それは不可能だと思います。

代わりに、キューを使用してサーバー上のパッケージに DEQUEUE を配置し、リンクを介してそのパッケージを呼び出すだけです。

これは正しいですか?

編集:

Igor は動的 SQL の使用について言及していますが、私はキューを使用してサーバーにパッケージを配置しました。それも同じ側で解析されます。問題は、デキューされたオブジェクトがそのキューのサーバーにのみ存在することになります。反対側に同じものがあっても。

4

1 に答える 1

1

DB リンクを使用して、動的 SQL (または匿名 PL/SQL ブロック) 用の DBMS_SQL のリモート バージョンを呼び出すことができます。これは、ステートメントがリモート データベースで解析されますが、「ローカル」ステートメントとして解析されることを意味します。

dbms_sql.parse@dblink(...); を開始します。終わり;

于 2008-12-17T22:35:52.010 に答える