找不到DBMS_JOB的替代项。中断命令使作业中断。请协助我进行相同操作。我的代码中使用的命令是
dbms_job.broken(oracle_job_num, true);
已经对我们代码中使用的以下命令进行了更改。
DBMS_JOB.SUBMIT -> DBMS_SCHEDULER.CREATE_JOB DBMS_JOB.REMOVE -> DBMS_SCHEDULER.DROP_JOB
ozxc1zmp1#
我不认为dbms_scheduler中有一个特定的API可以将作业标记为中断,但有一个API可以再次启用它:
DBMS_SCHEDULER.enable(name=>'test_job');
有一个API可以更改作业在发生多少次故障后将被禁用:
DBMS_SCHEDULER.set_attribute (name=>'test_job', attribute=>'max_failures',value=>3);
xam8gpfp2#
请使用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手动禁用和启用作业,则行为应该足够接近。
DBMS_SCHEDULER.DISABLE('JOB_NAME')
DBMS_SCHEDULER.ENABLE('JOBNAME')
DBMS_JOB.BROKEN(ORACLE_JOB_NUM, TRUE)
DBMS_JOB.BROKEN(ORACLE_JOB_NUM, FALSE)
2条答案
按热度按时间ozxc1zmp1#
我不认为dbms_scheduler中有一个特定的API可以将作业标记为中断,但有一个API可以再次启用它:
有一个API可以更改作业在发生多少次故障后将被禁用:
xam8gpfp2#
请使用
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手动禁用和启用作业,则行为应该足够接近。