Связывание работы с классом работы

Я пытаюсь создать задание с помощью DBMS_SCHEDULER в базе данных Oracle 11g, но у меня возникают проблемы с настройкой атрибута класса задания. Я уже просмотрел схему SYS, и там есть класс задания с именем «SCHED$_LOG_ON_ERRORS_CLASS», который выводит в журнал только в случае сбоя задания, чего я и хочу, вместо того, чтобы регистрировать его каждый раз, когда задание успешно. Вот скрипт, который я использую для создания задания:

BEGIN
    DBMS_SCHEDULER.CREATE_JOB(
        job_name => 'DIRXML.CHECK_EVENTLOG', 
        job_type => 'STORED_PROCEDURE', 
        job_action => 'DIRXML.P_Check_Eventlog', 
        job_class => 'DIRXML.SCHED$_LOG_ON_ERRORS_CLASS',
        repeat_interval => 'FREQ=SECONDLY;INTERVAL=30', 
        enabled => TRUE
    );
END;
/

Скрипт будет выполняться без ошибок, если я удалю атрибут job_class, но когда я его добавлю, я получаю следующую ошибку:

ORA-27476: «SYS.SCHED$_LOG_ON_ERRORS_CLASS» не существует ORA-06512: в «SYS.DBMS_ISCHED», строка 124 ORA-06512: в «SYS.DBMS_SCHEDULER», строка 271 ORA-06512: в строке 2

Единственное, о чем я мог подумать, это о том, что разрешения для моего пользователя настроены неправильно?


person Brian    schedule 23.02.2012    source источник


Ответы (1)


Похоже, что для этого конкретного класса заданий не было публичного гранта на выполнение, что объясняет, почему он его не нашел.

person Brian    schedule 23.02.2012
comment
+1 за ответ на свой вопрос. Если вы примете и этот ответ, то люди в будущем узнают, что это решило проблему. - person Ben; 24.02.2012
comment
Да, но ждать 2 дня. :) - person Brian; 24.02.2012
comment
Ах, честное слово. Никогда не был в такой ситуации :-). - person Ben; 24.02.2012