Oracle调度Schedule特性分析
这篇文章主要介绍"Oracle调度Schedule特性分析",在日常操作中,相信很多人在Oracle调度Schedule特性分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Oracle调度Schedule特性分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、创建Schedule
从名字来看,它是一个逻辑实体,就是说当创建了schedule之后,数据库中就肯定存在这一对象,只不过这一对象是用来描述job的执行周期。
创建schedule可以通过DBMS_SCHEDULER.CREATE_SCHEDULE过程
举个例子:
begin
dbms_scheduler.create_schedule(schedule_name => 'myschedule',
start_date => sysdate,
repeat_interval => 'FREQ=DAILY; INTERVAL=1',
comments => 'Every 1 weeks');
end;
/
下面对各参数分别代表含意解释一下
SCHEDULE_NAME 指定schedule名称,注意名称要求唯一性。
START_DATE 指定该调度的开始时间,可为空,当为空时表示该调度暂不起用。
REPEAT_INTERVAL 指定调度的执行频率或周期。
END_DATE 指定调度的结束时间,可为空,为空时就表示该调度将一直进行。
COMMENTS 注释信息。
这其中,比较复杂的是REPEAT_INTERVAL参数,对于这个参数大家应该不会太陌生,因为前面介绍Jobs,也曾经提到过同名的参数,
Schedules中的REPEAT_INTERVAL参数和Jobs中的REPEAT_INTERVAL参数功能完全相同,甚至参数格式也一模一样。
REPEAT_INTERVAL 参数的语法结构比较复杂。其中最重要的是FREQ和INTERVAL两个关键字。
FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分别表示年、月、周、日、时、分、秒等单位。
INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-99。
比如说,当指定REPEAT_INTERVAL=>'FREQ=DAILY;INTERVAL=1';就表示每天执行一次,如果将INTERVAL改为7就表示每7天执行一次,效果等同于FREQ=WEEKLY;INTERVAL=1。
2、管理Schedule
查询当前已经创建的schedules,可以通过*_SCHEDULER_SCHEDULES视图(含DBA_,ALL_,USER_),例如,查看当前用户拥有的schedules,执行语句如下:
select schedule_name,repeat_interval from user_scheduler_schedules;
SCHEDULE_NAME REPEAT_INTERVAL
------------------------------ ------------------------------
MYSCHEDULE FREQ=DAILY; INTERVAL=1
如果要修改schedule属性的话,也是使用DBMS_SCHEDULER.SET_ATTRIBUTE过程,该过程的调用方式跟之前的一样,这里就不再重复举例了,仅说明一点,
对于schedule来说,能够修改的属性包括:REPEAT_INTERVAL、COMMENTS、END_DATE、START_DATE以及EVENT_SPEC。
如果要删除schedule,再简单不过,执行DBMS_SCHEDULER.DROP_SCHEDULE过程即可
begin
DBMS_SCHEDULER.DROP_SCHEDULE('myschedule');
end;
到此,关于"Oracle调度Schedule特性分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!