【问题标题】:DBMS_JOB.Broken in oracleDBMS_JOB.在 oracle 中损坏
【发布时间】:2022-11-23 11:35:57
【问题描述】:

无法找到 DBMS_JOB.Broken 命令的替代品来使作业中断。请帮助我。 我的代码中使用的命令是

dbms_job.broken(oracle_job_num, true);

对我们代码中使用的以下命令进行了更改。

DBMS_JOB.SUBMIT -> DBMS_SCHEDULER.CREATE_JOB
DBMS_JOB.REMOVE -> DBMS_SCHEDULER.DROP_JOB

【问题讨论】:

    标签: oracle plsql dbms-scheduler dbms-job


    【解决方案1】:

    我认为在 dbms_scheduler 中没有特定的 api 可以将作业标记为已损坏,但有一个可以再次启用它:

    DBMS_SCHEDULER.enable(name=>'test_job');
    

    有一个 api 可以在作业将被禁用多少次失败后更改:

    DBMS_SCHEDULER.set_attribute (name=>'test_job', attribute=>'max_failures',value=>3);
    

    【讨论】:

      【解决方案2】:

      使用DBMS_SCHEDULER.DISABLE('JOB_NAME')DBMS_SCHEDULER.ENABLE('JOBNAME') 而不是DBMS_JOB.BROKEN(ORACLE_JOB_NUM, TRUE)DBMS_JOB.BROKEN(ORACLE_JOB_NUM, FALSE)。 “中断”和“启用”功能并不完全相同,因为DBMS_JOBS 会在 16 次失败后自动中断作业,而 DBMS_SCHEDULER 不会。但是,如果您只是使用 BROKEN 手动禁用和启用,那么行为应该足够接近。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多