Memo of PL/SQL jobs parameter

本文介绍Oracle DBMS_JOB过程的使用方法,重点讲解submit过程的参数设置,特别是interval参数的作用,以及如何设置周期性执行任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dbms_job.submit( job out binary_integer, 
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值