我正在尝试在Oracle 11g数据库中使用DBMS_SCHEDULER创建作业,但在设置作业类属性时遇到一些问题。我已经查看了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行
我唯一能想到的是我的用户没有正确设置权限?
答案 0 :(得分:2)
看起来在该特定工作类上没有公共执行授权,这解释了为什么它没有找到它。