Вопрос

Я впервые тестировал Oracle AQ. Мне удалось создать 2000 строк тестовых вложений в очередь, которую я создал.

Теперь я хотел бы очистить их. Как я учил себя, я устанавливаю время срока, чтобы быть месяцем. Я не могу ждать так долго. И я не думаю, что я должен просто удалить их из таблицы очередей.

Какой лучший способ сделать это?

Это было полезно?

Решение

Вы можете использовать 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;

Другие советы

Просто сделайте удаление в таблице очередей.

Не берите в голову, просто проверил чек и это не правильно:

Oracle Tookes AQ не поддерживает операции языка манипуляций данных (DML) на таблицах очереди или связанными с соответствующими индексными столами (IOTS), если таковые имеются. Единственными поддерживаемыми средствами модификации таблиц очереди представляют собой поставляемые API. Столы в очереди и IOTS могут стать непоследовательными и, следовательно, эффективно разрушены, если выполняются операции DML на них.


Итак, вам придется создать немного процедуры PL / SQL для выключения элементов.

Использовать dbms_aq упаковка. Проверьте примеру из документации: Сообщения с учетомОтказ Прокрутите немного вниз, и есть полный пример.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top