私は初めてOracleAQをテストしました。作成したキューに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
パッケージを使用してください。ドキュメントの例を確認してください:メッセージのデキュー。少し下にスクロールすると、完全な例があります。