2012-02-23 5 views
0

Я пытаюсь создать задание с использованием DBMS_SCHEDULER в Oracle 11g DB, но с некоторыми проблемами задает атрибут класса заданий. Я уже просмотрел схему 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" does not exist ORA-06512: at "SYS.DBMS_ISCHED", line 124 ORA-06512: at "SYS.DBMS_SCHEDULER", line 271 ORA-06512: at line 2

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

ответ

2

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

+0

+1 для ответа на свой вопрос. Если вы примете этот ответ, тогда люди в будущем знают, что это решило проблему. – Ben

+0

Да, придется ждать 2 дня. :) – Brian

+0

Ach, fair 'nuff. Никогда в этой ситуации не было :-). – Ben

Смежные вопросы