Oracle调度Schedule特性(第四部分)-scheduler

在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.net/31358702/viewspace-2154355/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31358702/viewspace-2154355/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值