1

ユニバーサル pl/sql を書き込んで、既にキューに入れられているメッセージを (再) キューに入れようとしています (どのような状態でもキュー テーブルに存在します)。

キューでデキューが有効になっている場合は正常に機能するため、最初にブラウズ モードでデキューしてDBMS_AQ.message_properties_t、既存のメッセージからデータを入力して読み込むことができます。しかし、デキューが無効になっている場合、どうすればそれらを取得できますか?

  DBMS_AQ.enqueue(
       queue_name          => fine,
       enqueue_options     => fine,
       message_properties  => how from existing message,
       payload             => how from existing message 
                                     (probably can select, not big deal),
       msgid               => fine);

ありがとう

4

2 に答える 2

1

これを行う方法の良い例が Oracle のサイトにあります: http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/apexampl.htm

基本的に、非破壊的な方法で「デキュー」できます (ブラウジングのための IE デキュー)。ただし、デキューしていないため、メッセージはそのまま残ります。

于 2011-05-09T18:18:45.263 に答える
1

ブラウズモードか削除モードかに関係なく、メッセージを取得するには、 DEQUEUINGを有効にする必要があります。

begin
   sys.dbms_aqadm.start_queue('[QUEUE_NAME]', true, true);
end;
/
于 2014-09-23T13:40:33.860 に答える