orcale 定时执行存储过程的简单介绍

来源:互联网 发布:linux shell 切换root 编辑:程序博客网 时间:2024/05/13 05:01

定义job 两点执行过程

Declare job1 number;
begin

dbms_job.submit(job1,'lv;',TRUNC(sysdate+1)+2/24,'TRUNC(sysdate+1)+2/24');

commit;

end
;


JOB常见的执行时间给你写出一些


1、每分钟执行
TRUNC(sysdate,'mi')+1/(24*60)

2、每天定时执行
例如:
每天凌晨0点执行
TRUNC(sysdate+1)
每天凌晨1点执行
TRUNC(sysdate+1)+1/24
每天早上830分执行
TRUNC(SYSDATE+1)+(8*60+30)/(24*60)

3、每周定时执行
例如:
每周一凌晨2点执行
TRUNC(next_day(sysdate,1))+2/24
TRUNC(next_day(sysdate,'星期一'))+2/24
每周二中午12点执行
TRUNC(next_day(sysdate,2))+12/24
TRUNC(next_day(sysdate,'星期二'))+12/24

4、每月定时执行
例如:
每月1日凌晨0点执行
TRUNC(LAST_DAY(SYSDATE)+1)
每月1日凌晨1点执行
TRUNC(LAST_DAY(SYSDATE)+1)+1/24

5、每季度定时执行
每季度的第一天凌晨0点执行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')
每季度的第一天凌晨2点执行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')+2/24
每季度的最后一天的晚上11点执行
TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24

6、每半年定时执行
例如:
每年71日和11凌晨1执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),6)+1/24

7、每年定时执行
例如:
每年11日凌晨2点执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),12)+2/24

 

 

 

 

 

 

语法解释:
     DBMS_JOB.SUBMIT

(:jobno,//job号   
'your_procedure;',//要执行的过程   
trunc(sysdate)+1/24,//下次执行时间   
'trunc(sysdate)+1/24+1'//每次间隔时间   
);   


删除job:dbms_job.remove(jobno);   
修改要执行的操作:job:dbms_job.what(jobno,what);   
修改下次执行时间:dbms_job.next_date(job,next_date);   
修改间隔时间:dbms_job.interval(job,interval);   
停止job:dbms.broken(job,broken,nextdate);   
启动job:dbms_job.run(jobno);   

附:调用语句和参数说明:   

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:任务执行的时间间隔。

原创粉丝点击