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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top