Jus*_*ave 12
如果要阻止所有作业运行,可以更改初始化参数JOB_QUEUE_PROCESSES.如果将其设置为0,Oracle将不会运行任何使用的作业DBMS_JOB.
您还可以将作业标记为已损坏
BEGIN
FOR x IN (SELECT * FROM user_jobs)
LOOP
dbms_job.broken( x.job, true );
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
这将导致它们无法运行(但允许在该点之后创建的任何作业正常运行).打破工作
BEGIN
FOR x IN (SELECT * FROM user_jobs)
LOOP
dbms_job.broken( x.job, false, SYSDATE + interval '1' minute);
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
将所有作业设置为在1分钟内运行.
==对于dbms_job作业:
alter system set job_queue_processes=0 scope=both;
Run Code Online (Sandbox Code Playgroud)
对于某些维护可能会更好/您通常可能希望脱机工作,并且在完成维护时不希望将它们联机.
==对于dbms_scheduler作业:
exec dbms_scheduler.set_scheduler_attribute('SCHEDULER_DISABLED','TRUE');
Run Code Online (Sandbox Code Playgroud)
维护完成后:
exec dbms_scheduler.set_scheduler_attribute('SCHEDULER_DISABLED','FALSE');
Run Code Online (Sandbox Code Playgroud)