1、查询作业进程
show parameter job;
select name,description from v$bgprocess where name like 'SNP%';
2、函数包DBMS_JOB介绍
该包包含的过程有SUBMIT、REMOVE、CHANGE、WHAT、NEXT_DATE、INTERVAL、BROKEN、RUN
参数介绍
job是作业号,标识一个作业在数据库中具有唯一性质
broken表示该作业是否被标记为无效,true无效,false有效
next_date表示下一次执行该作业的时间,默认为当前日期和时间
what表示该作业要运行的一块PL/SQL代码块、存储过程
interval表示该作业重复执行的时间间隔
no_parse表示作业在提交或者执行时是否应进行语法分析,true不分析,false立即分析
my_call表示在当前状态下重新提交此作业的代码
过程介绍:
SUBMIT:正常提交一个作业,有五个参数:job、what、next_date、interval、no_parse
REMOVE:删除一个已计划运行的作业,有一个参数:job、what、next_date、interval、no_parse
CHANGE:用于改变作业的执行计划,有四个参数:job、what、next_date、interval
WHAT:重新设置作业的执行代码,有两个参数:job、what
NEXT_DATE:用于设置作用下一次被执行的时间,有两个参数:job、next_date
INTERVAL:用于设置作用下一次执行的时间间隔,有两个参数:job、interval
BROKEN:用于设置一个已提交的左右有效或无效,有三个参数:job、broken、next_date
RUN:强制执行一个作业,不管该作业是否有效,有一个参数:job
USER_EXPORT:返回一个命令,此命令用来安排一个存在的作业以便此作业重新提交,有两个参数:job、my_call
3、应用实例
(1)创建一个基表
create table test(id number(7));
(2)创建一个存储过程,用于存储作业编号及当前日期
create or replace procedure insert_test as
begin
insert into test values(1);
end insert_test;
/
(3)创建作业计划调用存储过程
VARIABLE job_no1 number;
begin
dbms_job.submit(:job_no1,'insert_test;',sysdate,'sysdate+1/1440');
end;
/
(4)运行作业计划
begin
dbms_job.run(:job_no1);
end;
/
(5)查询基表
select * from test;
(6)删除作业队列
查询作业队列
select priv_user,job,what from user_jobs;
删除作业队列
begin
dbms_job.remove(:job_no1);
end;
/
或者exec dbms_job.remove(1);其中1为队列号