Pregunta

He estado probando Oracle AQ por primera vez. He conseguido crear 2000 filas de insertos de prueba en la cola que he creado.

Ahora, me gustaría aclarar aquellos cabo. Como yo estaba enseñando a mí mismo, me puse el tiempo de caducidad a ser un mes. No puedo esperar tanto tiempo. Y no creo que yo debería eliminarlos de la tabla de cola.

¿Cuál es la mejor manera de hacer esto?

¿Fue útil?

Solución

Puede utilizar el procedimiento DBMS_aqadm.purge_queue_table.


SOLUCIÓN

La apariencia SQL algo como esto:

-- purge queue
DECLARE
 po_t dbms_aqadm.aq$_purge_options_t;
BEGIN
  dbms_aqadm.purge_queue_table('MY_QUEUE_TABLE', NULL, po_t);
END;

Otros consejos

Sólo hacer una supresión en la tabla de colas.

No importa, acaba de hacer un cheque y eso no es derecha:

  

Oracle Streams AQ no soporta operaciones de lenguaje de manipulación de datos (DML) en las mesas de cola o tablas organizadas por índices asociados (IOT), si los hubiere. El único medio compatibles de modificar las tablas de cola es a través de las API proporcionadas. tablas de colas y TIO pueden llegar a ser inconsistente y, por tanto, de manera efectiva en ruinas, si las operaciones DML se realizan en ellos.


Por lo tanto, usted tiene que crear un poco de PL / SQL rutina para tirar de los elementos fuera.

Utilice el paquete dbms_aq. Comprobar el ejemplo de la documentación: desencola Mensajes . Desplazamiento hacia abajo un poco y hay un ejemplo completo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top