--建立新的任务调度

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

截图如下:

oracle job 操作命令记录_SQL