千家信息网

oracle 中怎么创建JOB

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,今天就跟大家聊聊有关oracle 中怎么创建JOB,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、创建JOB,可以指定固定的时间(对运行时间
千家信息网最后更新 2024年09月22日oracle 中怎么创建JOB

今天就跟大家聊聊有关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有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0