what in archar2,
next_date in date,
interval in varchar2,
no_parse in boolean)
其中:
●job:输出变量,是此任务在任务队列中的编号;
●what:执行的任务的名称及其输入参数;
●next_date:任务执行的时间;
●interval:任务执行的时间间隔。
下面详细讨论一下dbms_job.submit中的参数interval。严格地讲,interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。 这里的m是以(天)为单位的,即:24小时执行1次,m=1;
将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以DBA的身份将权利授予scott用户:
svrmgrl> grant execute on dbms_job to scott;
例如:
SQL> variable n number;
SQL> begin
2 dbms_job.submit(:n,'statchangetable;',sysdate,
3 'sysdate+1/360');
4 commit;
5 end;
6 /
添加后可以查看一下任务的信息:
SQL> select job,last_date,last_sec,next_date,next_sec,broken,failures from
2 dba_jobs;
JOB LAST_DATE LAST_SEC NEXT_DATE NEXT_SEC B FAILURES
---------- ---------- ---------------- ---------- ---------------- - ----------
1 22-8月 -06 16:26:57 22-8月 -06 16:30:57 N 13
2 22-8月 -06 16:27:17 22-8月 -06 16:31:17 N 5
3 22-8月 -06 16:27:02 22-8月 -06 16:31:02 N 0