Если я правильно понимаю ваш вопрос, то, как я бы это сделал, это создать простую таблицу с идентификатором, именем таблицы и активным флагом, затем вы можете заполнить имена таблиц в этой таблице или удалить их при необходимости.
create table my_queue_names (my_queue_id number default 0, my_queue_name varchar2(100), active_flag varchar2(1));
Затем введите имена своих очередей
insert into my_queue_names (my_queue_id, my_queue_name, active_flag) values (1, 'test.AQ$_test_T_E', 'Y');
Затем в разделе объявлений объявите курсор, например,
cursor c_queue_tables is
select ID, queue_name for my_queue_names
where aactive_flag = 'Y';
Затем просто используйте цикл for (как у вас для сообщений) и используйте cursor_variable .my_queue_name вместо жесткого кодирования queue_name в ваших операторах enqueue / dequeue.
Затем, когда у вас появляется новая очередь, вы просто вставляете ее в созданную вами таблицу конфигурации, и она начинает обрабатываться. Если вы хотите отключить только один, вы можете просто установить для active_flag значение «N» ИЛИ удалить его из таблицы конфигурации.