質問

Oracle AQを初めてテストしています。作成したキューに2000行のテストインサートを作成することができました。

今、私はそれらを一掃したいと思います。私は自分自身を教えていたとき、私は有効期限を1か月に設定しました。そんなに長く待てない。そして、キューテーブルからそれらを削除するだけではないと思います。

これを行うための最良の方法は何ですか?

役に立ちましたか?

解決

使用できます DBMS_aqadm.purge_queue_table 手順。


解決

SQLは次のようになります:

-- purge queue
DECLARE
 po_t dbms_aqadm.aq$_purge_options_t;
BEGIN
  dbms_aqadm.purge_queue_table('MY_QUEUE_TABLE', NULL, po_t);
END;

他のヒント

キューテーブルで削除を実行するだけです。

気にしないでください、ただチェックをしました そうではありません:

Oracle Streams AQは、キューテーブルまたは関連するインデックスに組織化されたテーブル(IoT)のデータ操作言語(DML)操作をサポートしていません。キューテーブルを変更する唯一のサポートされている手段は、付属のAPIを使用することです。キューテーブルとIOTは、DML操作が実行された場合、一貫性がないため、効果的に台無しになる可能性があります。


そのため、アイテムをオフにするには、小さなPL/SQLルーチンを作成する必要があります。

使用 dbms_aq パッケージ。ドキュメントの例を確認してください。 メッセージをデケーします。少し下にスクロールすると、完全な例があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top