【问题标题】:DBMS Scheduler error: ORA-27367: program "Schema.PROG_programname" associated with this job is disabledDBMS 调度程序错误:ORA-27367:与此作业关联的程序“Schema.PROG_programname”已禁用
【发布时间】:2021-09-27 05:59:27
【问题描述】:

我已经使用 dbms 调度程序创建了一个 oracle 作业。但是在执行中状态会失败。它给出了以下错误。 'ORA-27367:与此作业关联的程序“Schema.PROG_SIXMONTHPRIORITY”已禁用'但我没有禁用该作业。 'program_action => 'SIXMONTHPRIORITY'' 是我在模式中创建的一个过程。当我单独执行该过程时,它会被执行。

BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name      => 'PROG_SIXMONTHPRIORITY',
program_action     => 'SIXMONTHPRIORITY',
program_type      => 'STORED_PROCEDURE');
END;

BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE (
 schedule_name   => 'P_SCHEDULE_3',
 start_date    => SYSTIMESTAMP,
 repeat_interval  => 'FREQ= MINUTELY; INTERVAL=30; BYMONTHDAY=19; BYHOUR=13',
 end_date     => SYSTIMESTAMP + INTERVAL '1' day,
 comments     => 'Every 30 minutes');
END;

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
  job_name     => 'CAL_SIX_MON_PRIORITY_3',
  program_name   => 'PROG_SIXMONTHPRIORITY',
  schedule_name   => 'P_SCHEDULE_3');
END;

谁能找出这个错误的原因?

【问题讨论】:

    标签: oracle jobs dbms-scheduler


    【解决方案1】:

    您创建的调度程序对象也可以单独启用或禁用。确保在创建调度程序对象时指定“enabled => true”:

    BEGIN
        DBMS_SCHEDULER.CREATE_PROGRAM (
            program_name      => 'PROG_SIXMONTHPRIORITY',
            program_action     => 'SIXMONTHPRIORITY',
            program_type      => 'STORED_PROCEDURE',
            enabled => true);
    END;
    
    BEGIN
        DBMS_SCHEDULER.CREATE_SCHEDULE (
            schedule_name   => 'P_SCHEDULE_3',
            start_date    => SYSTIMESTAMP,
            repeat_interval  => 'FREQ= MINUTELY; INTERVAL=30; BYMONTHDAY=19; BYHOUR=13',
            end_date     => SYSTIMESTAMP + INTERVAL '1' day,
            comments     => 'Every 30 minutes');
    END;
    
    BEGIN
        DBMS_SCHEDULER.CREATE_JOB (
            job_name     => 'CAL_SIX_MON_PRIORITY_3',
            program_name   => 'PROG_SIXMONTHPRIORITY',
            schedule_name   => 'P_SCHEDULE_3',
            enabled => true);
    END;
    

    对于已有对象,可以直接设置属性:

    BEGIN
        DBMS_SCHEDULER.ENABLE ('PROG_SIXMONTHPRIORITY');
        DBMS_SCHEDULER.ENABLE ('CAL_SIX_MON_PRIORITY_3');
    END;
    /
    

    【讨论】:

    • 但仍然失败。
    • 我更新了我的语法。请再试一次;如果失败,请发布select * from all_scheduler_programs where program_name='PROG_SIXMONTHPRIORITY';的输出
    • 成功了。
    猜你喜欢
    • 2017-03-22
    • 2015-01-14
    • 2013-12-29
    • 2015-03-24
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多