Oracle AQを初めてテストしました。私は作成したキューに2000行のテストインサートを作成することができました。Oracle AQでキューをクリアする方法
ここでは、それらを明確にしたいと思います。私が自分自身を教えていたので、私は満了の時間を1ヶ月に設定しました。私はそれほど待てない。そして、私はキューテーブルからそれらを削除するだけではないと思います。
これを行うにはどうすればよいですか?
Oracle AQを初めてテストしました。私は作成したキューに2000行のテストインサートを作成することができました。Oracle AQでキューをクリアする方法
ここでは、それらを明確にしたいと思います。私が自分自身を教えていたので、私は満了の時間を1ヶ月に設定しました。私はそれほど待てない。そして、私はキューテーブルからそれらを削除するだけではないと思います。
これを行うにはどうすればよいですか?
手順はDBMS_aqadm.purge_queue_table
です。
-- 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)操作をサポートしていません。気にしないで
は、単にチェックとthat's not rightをしました。キューテーブルを変更するためにサポートされている唯一の手段は、提供されているAPIです。キュー表とIOTは、DML操作が実行されると、一貫性がなくなり、結果として実質的に損なわれる可能性があります。
だから、あなたがアイテムをやってのけるために少しPL/SQLルーチンを作成する必要があります。
dbms_aq
パッケージを使用してください。ドキュメントの例を確認してください:Dequeuing Messages。 少しスクロールすると、完全な例があります。
私はキューテーブルから削除できないことを知っていた。キューからメッセージを削除するために使用するAPIは何ですか? –
このソリューションは、まさにここでの例のようになります:http://psoug.org/reference/dbms_aqadm.html
SOLUTION
は、SQLは次のようになります。 Oracleドキュメントが好きな人向けhttp://docs.oracle.com/cd/B19306_01/server.102/b14257/aq_admin.htm#BAJFEDGG例8-17および8-18「キュー表のすべてのメッセージのパージ」 – ono2012