Ошибка: агенту AQ SYS не предоставлены привилегии пользователя базы данных SYSTEM

Я пытаюсь снять события, возникшие на работе, после успешного завершения. При запуске блока PLSQL для удаления из очереди после создания задания я получаю сообщение об ошибке. Используемая база данных: оракул 11g R2
Создать JOB:

BEGIN
   DBMS_SCHEDULER.create_job (
      job_name        => 'event_raising_job',
      job_type        => 'PLSQL_BLOCK',
      job_action      => 'BEGIN
                            -- Does nothing.
                            NULL;
                          END;',
      start_date      => SYSTIMESTAMP,
      end_date        => SYSTIMESTAMP + (1/24), -- 1 hour
      repeat_interval => 'freq=minutely; bysecond=0',
      enabled         => TRUE);

  DBMS_SCHEDULER.set_attribute(
    name      => 'event_raising_job',
    attribute => 'raise_events',
    value     => DBMS_SCHEDULER.job_succeeded);
END;
/

Dequeue:

DECLARE
  l_dequeue_options     DBMS_AQ.dequeue_options_t;
  l_message_properties  DBMS_AQ.message_properties_t;
  l_message_handle      RAW(16);
  l_queue_msg           sys.scheduler$_event_info;
BEGIN
  l_dequeue_options.consumer_name := 'SYS';

  DBMS_AQ.dequeue(queue_name          => 'SYS.SCHEDULER$_EVENT_QUEUE',
                  dequeue_options     => l_dequeue_options,
                  message_properties  => l_message_properties,
                  payload             => l_queue_msg,
                  msgid               => l_message_handle);
  COMMIT;

  DBMS_OUTPUT.put_line ('event_type     : ' || l_queue_msg.event_type);
  DBMS_OUTPUT.put_line ('object_owner   : ' || l_queue_msg.object_owner);
  DBMS_OUTPUT.put_line ('object_name    : ' || l_queue_msg.object_name);
  DBMS_OUTPUT.put_line ('event_timestamp: ' || l_queue_msg.event_timestamp);
  DBMS_OUTPUT.put_line ('error_code     : ' || l_queue_msg.error_code);
  DBMS_OUTPUT.put_line ('event_status   : ' || l_queue_msg.event_status);
  DBMS_OUTPUT.put_line ('log_id         : ' || l_queue_msg.log_id);
  DBMS_OUTPUT.put_line ('run_count      : ' || l_queue_msg.run_count);
  DBMS_OUTPUT.put_line ('failure_count  : ' || l_queue_msg.failure_count);
  DBMS_OUTPUT.put_line ('retry_count    : ' || l_queue_msg.retry_count);
END;
/

0 ответов

Другие вопросы по тегам