今天就跟大家聊聊有关oracle 中怎么创建JOB,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1、创建JOB,可以指定固定的时间(对运行时间的管理更加明细)。
select job_name, state from user_scheduler_jobs;
grant create job to btupayprod;
begin
dbms_scheduler.create_job(job_name => 'JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'proc_balance_fix_mon', --存储过程名
start_date => sysdate,
repeat_interval => 'FREQ=minutely; INTERVAL=45; BYHOUR=15,16,17',
comments => '执行余额校验补数程序');
end;
2、需要的权限较小,一般不需要另外赋予其他的权限,但是只能指定固定的时间间隔。
declare
job_id pls_integer;
begin
sys.dbms_job.submit(job => job_id,
what => 'proc_balance_fix_mon;',
next_date => to_date('07-08-2015 20:00:00', 'dd-mm-yyyy hh34:mi:ss'),
interval => 'TRUNC(sysdate,''mi'') + 40 / (24 * 60)');
--commit;
end;
oracle JOB常见的执行时间
TRUNC(SYSDATE +1) + (3*60+10)/(24*60)
1、每分钟执行
TRUNC(sysdate,'mi')+1/(24*60)
www.2cto.com
2、每天定时执行
例如:
每天凌晨0点执行
TRUNC(sysdate+1)
每天凌晨1点执行
TRUNC(sysdate+1)+1/24
每天早上8点30分执行
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、每半年定时执行
例如:
每年7月1日和1月1日凌晨1点执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),6)+1/24
7、每年定时执行
例如:
每年1月1日凌晨2点执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),12)+2/24
看完上述内容,你们对oracle 中怎么创建JOB有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。