DBMS_JOB包用于调度作业,可以提交作业到作业队列中,并指明作业运行的周期。
(1)提交作业 submit
语法:
1 procedure submit( job out binary_integer, --由过程自动生产的作业id号,返回给调用者 2 what in varchar2, --该作业要执行的任务,通常为一个过程名或者一段匿名代码 3 next_date in date default sysdate, --下一次执行的日期,即提交作业之后第一次执行的日期 4 interval in varchar2 default 'null', --作业重复执行的周期,即重复执行作业的时间间隔 5 no_parse in boolean default false, --是否解析与作业相关的实例Instance 6 instance in binary_integer default 0, --指定在哪个实例上运行作业 7 force in boolean default false); --是否强制运行与作业相关的实例
其中,作业任务what,要以 分号 ; 结尾。作业通常是一个过程或者一段 ‘insert、Update、 delete 等DML的 SQL语句’。
(2)移除作业 remove
语法:
DBMS_JOB.remove(job in binary_integer);
(3)更改作业 change
procedure DBMS_JOB.CHANGE( job in binary_integer, --要更改的作业id号 2 what in varchar2, --该作业要执行的任务,通常为一个过程名或者一段匿名代码 3 next_date in date default sysdate, --下一次执行的日期,即提交作业之后第一次执行的日期 4 interval in varchar2 default 'null', --作业重复执行的周期,即重复执行作业的时间间隔 5 no_parse in boolean default false, --是否解析与作业相关的实例Instance 6 instance in binary_integer default 0, --指定在哪个实例上运行作业 7 force in boolean default false); --是否强制运行与作业相关的实例
如果参数 what, next_date, interval 为 NULL, 则表示保持以前的值不变。用户只能修改属于自己的作业。
(4)更改作业任务 what
DBMS_JOB.what(job in binary_integer, what in varchar2);