Wie eine Schlange in Oracle AQ löschen
Frage
Ich habe getestet Oracle AQ zum ersten Mal. Ich habe 2000 Reihen von Testeinsätzen in die Warteschlange erstellen kann ich erstellt.
Nun würde Ich mag diejenigen räumen. Als ich mich lehrte, stelle ich die Ablaufzeit ein Monat. Ich kann nicht so lange warten. Und ich glaube nicht, dass ich sie einfach löschen aus der Warteschlange Tabelle.
Was ist der beste Weg, dies zu tun?
Lösung
Sie können die DBMS_aqadm.purge_queue_table
Verfahren verwendet werden.
SOLUTION
Die SQL sieht etwa so aus:
-- purge queue
DECLARE
po_t dbms_aqadm.aq$_purge_options_t;
BEGIN
dbms_aqadm.purge_queue_table('MY_QUEUE_TABLE', NULL, po_t);
END;
Andere Tipps
Just do eine Lösch in der Warteschlange Tabelle.
Macht nichts, habe gerade einen Scheck und das ist nicht rechts :
Oracle Streams AQ nicht Datenbearbeitungssprache (DML) Operationen an Warteschlange Tabellen oder zugehörigen Index-organisierte Tabellen (IOT) unterstützen, falls vorhanden. Das einzige unterstützte Mittel zum Modifizieren Tabellen Warteschlange ist durch die mitgelieferten APIs. Queue-Tabellen und IOTs effektiv ruiniert inkonsistent und daher werden, wenn DML-Operationen an ihnen durchgeführt werden.
So werden Sie ein wenig erstellen müssen PL / SQL-Routine aus, die Elemente zu ziehen.
Mit dem dbms_aq
Paket. Überprüfen Sie das Beispiel aus der Dokumentation: Ausreihen Nachrichten .
Scrollen Sie nach unten ein wenig und es gibt ein vollständiges Beispiel.