oracle schedule参数,【Oracle】SCHEDULER使用详解

SCHEDULER使用详解:

创建SCHEDULER:

BEGIN

sys.dbms_scheduler.create_schedule(

repeat_interval => ‘FREQ=DAILY;BYHOUR=15;BYMINUTE=0;BYSECOND=0‘,

start_date => systimestamp at time zone ‘+8:00‘,

end_date => to_timestamp_tz(‘2014-03-15 +8:00‘, ‘YYYY-MM-DD TZH:TZM‘),

comments => ‘REBUILD INDEX‘,

schedule_name => ‘"SYS"."IDX_REBUILD"‘);

END;

参数解释:

repeat_interval设置重复频率

FREQ(指定重复频率):

YEARLY:以年为单位,可以设置每年的哪天执行。INTERVAL重复次数。BYYEARDAY可以指定具体的日子。用1-365来表示每天,但到了闰年就是1-366。由于有二月这个不确定性的存在(例如如果设置69,则在平年指的是三月十号,闰年则会是三月九号),所以我们可以使用1-59来表示1月到2月28,-307至-1来表示2月29到12月31。之后BYHOUR,BYMINUTE,BYSECOND可以用来指定运行的具体时刻。

其他的还有MONTHLY、WEEKLY、DAILY、HOURLY、MINUTELY、SECONDLY

举例说明:

每年的1月14和3月10日的下午3点10分5秒执行,执行三年:

repeat_interval => ‘FREQ=YEARLY;INTERVAL=3;BYYEARDAY=14,-297;BYHOUR=15;BYMINUTE=10;BYSECOND=5‘,

MONTHLY:以月为单位,设置每个月的哪天执行:

每个月的1日、3日下午3点10分5秒执行,执行三个月:

repeat_interval => ‘FREQ=MONTHLY;INTERVAL=3;BYMONTHDAY=1,3;BYHOUR=15;BYMINUTE=10;BYSECOND=5‘,

每周二周三下午3点10分5秒执行,执行三周:

repeat_interval => ‘FREQ=WEEKLY;INTERVAL=3;BYDAY=TUE,WED;BYHOUR=15;BYMINUTE=10;BYSECOND=5‘,

每天下午3点10分5秒执行,执行三天

repeat_interval => ‘FREQ=DAILY;INTERVAL=3;BYHOUR=15;BYMINUTE=10;BYSECOND=5‘,

从第一次执行的时候开始每小时执行一次,执行三次:(MINUTELY、SECONDLY和此类似,就不写了)

repeat_interval => ‘FREQ=HOURLY;INTERVAL=3‘,

调用当时执行一次,不重复执行:

repeat_interval => null,

start_date设置生效时间:

立即生效

start_date => systimestamp at time zone ‘+8:00‘,

2014-03-15 下午五点生效:

start_date => to_timestamp_tz(‘2014-03-15 17:00:00 +8:00‘, ‘YYYY-MM-DD HH24:MI:SS TZH:TZM‘),

end_date设置schedule失效时间:

如果没有失效时间则不用设置此行。

2014-03-15下午九点结束:

end_date => to_timestamp_tz(‘2014-03-15 21:10:00 +8:00‘, ‘YYYY-MM-DD HH24:MI:SS TZH:TZM‘),

comments对于scheduler的一些描述,没有可以不写。

schedule_name:schedule的所属用户和名字

sys用户的,名字为IDX_REBUILD

schedule_name => ‘"SYS"."IDX_REBUILD"‘);

修改SCHEDULER:

BEGIN

sys.dbms_scheduler.set_attribute( name => ‘"SYS"."DAILYREBUILD"‘, attribute => ‘repeat_interval‘, value => ‘FREQ=WEEKLY;BYHOUR=14;BYMINUTE=0;BYSECOND=0‘);

sys.dbms_scheduler.set_attribute( name => ‘"SYS"."DAILYREBUILD"‘, attribute => ‘start_date‘, value => systimestamp at time zone ‘+8:00‘);

sys.dbms_scheduler.set_attribute( name => ‘"SYS"."DAILYREBUILD"‘, attribute => ‘end_date‘, value => to_timestamp_tz(‘2014-03-15 +8:00‘, ‘YYYY-MM-DD TZH:TZM‘));

END;

name :修改的scheduler的所属用户以及名字

attribute:修改的参数名

value:修改后的参数值

删除SCHEDULER:

BEGIN

dbms_scheduler.drop_schedule( schedule_name =>’DAILYREBUILD’, force => FALSE);

END;

只有两个参数

schedule_name:schedule的名字

force:如果是FALSE则如果有其他的job在使用这个schedule就不会删除这个schedule,如果是TRUE则不管有没有其他job使用这个schedule都会将这个schedule删除。

原文:http://blog.csdn.net/badly9/article/details/21293855

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值