1.创建job
variable jobno number;
begin
 dbms_job.submit(job=>:jobno,what=>'p_test;',next_date=>sysdate,interval=>'TRUNC(sysdate)+1+17/24',instance=>1);
 commit;
end;
/
--注:
1)next_date:job下次运行时间;
2)interval:job运行的时间间隔。

2.查看job
select * from dba_jobs;
select * from dba_jobs_running;
select * from user_jobs;
select * from all_jobs;

3.人工运行job
begin
  dbms_job.run(99);
  commit;
end;
/
--注:
1)这里,99为job号。

4.停止job
begin
  dbms_job.broken(99,true,next_date);
  commit;  
end;
/
--注:
1)99:这里,99为job号;
2)true:表示是否停止job,也可以为false;
3)next_date:job停止的时间,sysdate表示立刻停止。

5.修改job间隔时间
begin
  dbms_job.interval(99,interval);
  commit;  
end;
/
--注:
1)99:这里,99为job号;
2)interval:job运行的时间间隔。

6.修改job下次运行时间
begin
  dbms_job.next_date(99,next_date);
  commit;
end;
/
--注:
1)99:这里,99为job号;
2)next_date:job下次运行的时间。

7.修改job调用的操作
begin
  dbms_job.what(99,'p_test1;');
  commit;
end;
/
--注:
1)99:这里,99为job号;
2)'p_test1':job调用的过程名。

8.删除job
begin
  dbms_job.remove(99);
  commit;
end;
/
--注:
1)99:这里,99为job号。