admin管理员组文章数量:1566636
在oracle 10g之前,我们了解了job,program,在自己的应用里也大规模使用这些对象。oracle在10g之后又引入了scheduler的对象,相信很多朋友一定不太明白oracle的意图。
相比之前的jobs,SCHEDULER中新增了很多概念。比如说jobs,仍然可以理解成之前版本中的jobs,不过功能更加强大(注意10g中也仍然可以使用普通jobs),
比如说program,指的是运行的程序(说白了就是干活的),比如说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;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub/31358702/viewspace-2154355/,如需转载,请注明出处,否则将追究法律责任。
版权声明:本文标题:oracle创建调度语句,Oracle调度Schedule特性(第四部分)-scheduler 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1725782214a1042323.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论