25

私は初めてOracleAQをテストしました。作成したキューに2000行のテスト挿入を作成することができました。

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

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

4

2 に答える 2

36

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;
于 2010-11-23T23:44:13.610 に答える
2

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

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

Oracle Streams AQは、キュー表または関連する索引構成表(IOT)でのデータ操作言語(DML)操作をサポートしていません(存在する場合)。キューテーブルを変更するためにサポートされている唯一の手段は、提供されているAPIを使用することです。キューテーブルとIOTは、DML操作が実行されると、一貫性がなくなり、事実上台無しになる可能性があります。


そのため、項目を実行するための小さなPL/SQLルーチンを作成する必要があります。

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

于 2010-11-23T23:05:00.643 に答える