ORACLE Scheduler中如何创建和管理Schedule

54次阅读
没有评论

共计 2395 个字符,预计需要花费 6 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 ORACLE Scheduler 中如何创建和管理 Schedule,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  10g
中新推出的 SCHEDULER 可能确实会让很多初接触的朋友感觉晕头晕脑,相比之前的 jobs,SCHEDULER 中新增的概念太多。比如说 jobs,仍然可以理解成之前版本中的 jobs,不过功能更加强大 (注意 10g 中也仍然可以使用普通 jobs,这是废话,相信看本篇文章的朋友目前应该还是这样在用),比如说 program,指的是运行的程序 (把要做什么单提出来了),比如说 schedule,我将其翻译为调度 (job 我翻译为任务),定义执行的频率或者说周期。

3.1  创建和管理 Schedules

Schedule,中文直译的话应该理解成调度,从名字来看,它是一个逻辑实体 (逻辑,还实体,好矛盾),就是说当创建了 schedule 之后,数据库中就肯定存在这一对象,只不过这一对象是用来描述 job 的执行周期。

创建 schedule 可以通过 DBMS_SCHEDULER.CREATE_SCHEDULE 过程,该过程支持的参数如下:

SQL  desc dbms_scheduler.create_schedule;

Parameter Type Mode Default? 

————— ———————— —- ——– 

SCHEDULE_NAME VARCHAR2 IN 

START_DATE TIMESTAMP WITH TIME ZONE IN Y 

REPEAT_INTERVAL VARCHAR2 IN 

END_DATE TIMESTAMP WITH TIME ZONE IN Y 

COMMENTS VARCHAR2 IN Y 

各参数分别代表含意如下:

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。

下面,创建一个 schedule,指定调度为每周一次的频率,执行脚本如下:

SQL  begin

 2 DBMS_SCHEDULER.CREATE_SCHEDULE (

 3 schedule_name =   my_first_schedule ,

 4 start_date =  SYSDATE,

 5 repeat_interval =   FREQ=WEEKLY; INTERVAL=1 ,

 6 comments =   Every 1 weeks

 7 END;

 8 /

PL/SQL procedure successfully completed.

查询当前已经创建的 schedules,可以通过 *_SCHEDULER_SCHEDULES 视图 (含 DBA_,ALL_,USER_),例如,查看当前用户拥有的 schedules,执行语句如下:

SQL  select schedule_name,repeat_interval from user_scheduler_schedules;

SCHEDULE_NAME REPEAT_INTERVAL

—————————— ——————————

MY_FIRST_SCHEDULE FREQ=WEEKLY; INTERVAL=1

如果要修改 schedule 属性的话,也是使用 DBMS_SCHEDULER.SET_ATTRIBUTE 过程,该过程的调用方式前面已经多次演示过,这里就不再重复举例了,仅说明一点,对于 schedule 来说,能够修改的属性包括:REPEAT_INTERVAL、COMMENTS、END_DATE、START_DATE 以及 EVENT_SPEC。

至于删除 schedule,再简单不过,执行 DBMS_SCHEDULER.DROP_SCHEDULE 过程即可,例如:

SQL  EXEC DBMS_SCHEDULER.DROP_SCHEDULE(MY_FIRST_SCHEDULE

PL/SQL procedure successfully completed.

以上是“ORACLE Scheduler 中如何创建和管理 Schedule”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2395字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)