--建立新的任务调度
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'JOB_TEST01', --任务调度名称,可以为中文,用于标记此任务
job_type => 'STORED_PROCEDURE', --调度的任务类型
job_action => 'pkg_test_job.union_exeall', --调试的任务名称
START_DATE => sysdate --表示此调度任务触发后立即执行
);
END;
---解发已建立的调度任务
begin
dbms_scheduler.enable('JOB_TEST01');
end;
---禁用已建立的调度任务
begin
dbms_scheduler.disable('JOB_TEST01');
end;
---停掉当前正在运行的调度任务
begin
dbms_scheduler.stop_job('JOB_TEST01');
end;
---查询所有已建立,待执行的调度任务
select * from DBA_SCHEDULER_JOBS;
select * from DBA_SCHEDULER_JOBS where job_name = 'JOB_TEST01';
---查询正在执行的调度任务
select * from dba_scheduler_running_jobs;
select * from dba_scheduler_running_jobs where job_Name = 'JOB_TEST01';
---已经执行完成的调度任务,均会在log表中留下痕迹
select * from DBA_SCHEDULER_JOB_LOG where job_Name = 'JOB_TEST01';
如果建立JOB之后无法启动,需检查系统JOB参数是否开启:
SQL> show parameter job_queue_process;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 0
SQL> alter system set job_queue_processes = 50;
System altered
SQL> show parameter job_queue_process;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 50
截图如下: