oracle中关于定时器的创建与删除

1、把init.ora中如下两个参数打开
JOB_QUEUE_INTERVAL=60
JOB_QUEUE_PROCESSES=4
job_queue_keep_connections=true
//位置位于:D:/oracle/admin/orcl/pfile下的init.ora文件内
2、定义job
sql>variable m number;
sql>begin
dbms_job.submit(:m,‘insert into attend (kq_id,user_id,date_time) select kq_id.nextVal,id,sysdate from rs_ygb;’,sysdate,‘sysdate+1’);
commit;
end;
/
PL/SQL 过程已成功完成。
或者已连接。
sql>variable m number;
sql>begin
 dbms_job.submit(:m,‘insert into attend(kq_id,user_id,date_time) select kq_id.nextVal,id,sysdate from rs_ygb a,atten
d b where a.id !=b.user_id and to_char(b.date_time,'yyyy/mm/dd')!=to_char(sysdate,'yyyy/mm/dd');',sysdate,‘sysdate+1’);
commit;
end;
/
3、 系统提示执行成功。   Sql> print :n;
4、 如上,我们创建了一个每隔4分钟执行一次的任务号为300的任务。可以通过Oracle提供
的数据字典user_jobs察看该任务的执行情况:
  sql> select job,next_date,next_sec,failures,broken from user_jobs;
  执行结果如下:
  job next_date next_sec failures broken
  300 2000/10/10 11:45:15 0 N
  这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败
记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1
。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它
,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来
  除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务
。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务
。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。

5、
一般在执行语句的前面加exec
 删除job:dbms_job.remove(jobno);
修改job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval)
例如:
exec dbms_job.next_date(1,to_date('2006-03-01 00:00:00','yyyy/mm/dd hh24:mi:ss'))
 删除job:dbms_job.remove(jobno);
修改job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
6、

3、常见的时间函数

30分钟:(sysdate+1)/48
1个小时:(sysdate+1)/24
一天:sysdate+1
一个星期: sysdate+7
每个星期五中午:
NEXT_DAY(TRUNC(SYSDATE),'星期五') + 12/24
一个月:add_months(sysdate,1) --可以为正负数
一年:add_months(sysdate,12)
月份加减:select to_char(add_months(sysdate,-1),'yyyymm') from dual;
日期加减:select to_char(sysdate-1,'yyyymmdd') from dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值