千家信息网

ORACLE如何创建jobs

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了ORACLE如何创建jobs,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、使用Jobs所谓JOBS,其实就是Sc
千家信息网最后更新 2026年11月01日ORACLE如何创建jobs

这篇文章主要介绍了ORACLE如何创建jobs,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。


一、使用Jobs

  所谓JOBS,其实就是Scheduler管理的一个(或多个)任务的执行调度。

1.1 创建Jobs

  通过DBMS_SCHEDULER包来创建Jobs,是使用其CREATE_JOB过程。在创建Job时,用户可以指定要执行的任务,调度信息(啥时候执行,执行周期,终止日期等)以及其它一些任务相关的属性。CREATE_JOB过程调用还是比较简单的,例如:

    SQL> BEGIN

    2 DBMS_SCHEDULER.CREATE_JOB (

    3 job_name => 'INSERT_TEST_TBL',

    4 job_type => 'STORED_PROCEDURE',

    5 job_action => ' P_ INSERT INTOTEST ',

    6 start_date => sysdate,

    7 repeat_interval => 'FREQ=DAILY;INTERVAL=1');

    8 END;

    9 /

  • PL/SQL 过程已成功完成。

  事实上,有权限的话,用户也可以创建其它SCHEMA下的JOB,只需要在指定JOB_NAME时,按照schema.job_name的格式即可。注意哟,这种情况下创建的JOB,其CREATED与OWNER有可能并不相同的哟。

  当使用CREATE_JOB过程创建JOB时,可指定的参数值很多,只不过多数情况下用户仅指定部分参数即可满足需求。

  其中,上例中指定的参数,分别代表的含义如下:

  • JOB_NAME :指定任务的名称,必选值,注意要确保指定的名称唯一。

  • JOB_TYPE :任务执行的操作类型,必选值,有下列几个可选值:

    • PLSQL_BLOCK :表示任务执行的是一个PL/SQL匿名块。

    • STORED_PROCEDURE :表示任务执行的是ORACLE过程(含PL/SQL PROCEDURE和JAVA PROCEDURE),本例中正是指定这一参数值。

    • EXECUTABLE :表示任务执行的是一个外部程序,比如说操作系统命令。

    • CHAIN :表示任务执行的是一个CHAIN。

  • JOB_ACTION :任务执行的操作,必选值,应与JOB_TYPE类型中指定的参数相匹配。

  • 比如说对于PL/SQL匿名块,此处就可以放置PL/SQL块的具体代表,类似DECLARE .. BEGIN ..END这类;如果是ORACLE过程,那么此处应该指定具体的过程名,注意由于任务执行,即使过程中有OUT之类参数,实际执行时也不会有输出的。

  • START_DATE :指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE。

  • REPEAT_INTERVAL :指定任务执行的频率,比如多长时间会被触发再次执行。本参数也可以为空,如果为空的话,就表示当前设定的任务只执行一次。REPEAT_INTERVAL参数需要好好说说,因为这一参数与标准JOB中的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。

    一般来说,使用DBMS_SCHEDULER.CREATE_JOB创建一个JOB,至少需要指定上述参数中的前3项。除此之外,还可以在CREATE_JOB时,指定下列参数:

  • NUMBER_OF_ARGUMENTS :指定该JOB执行时需要附带的参数的数量,默认值为0,注意当JOB_TYPE列值为PLSQL_BLOCK或CHAIN时,本参数必须设置为0,因为上述两种情况下不支持附带参数。

  • END_DATE :指定任务的过期时间,默认值为NULL。任务过期后,任务的STATE将自动被修改为COMPLETED,ENABLED被置为FALSE。如果该参数设置为空的话,表示该任务永不过期,将一直按照REPEAT_INTERVAL参数设置的周期重复执行,直到达到设置的MAX_RUNS或MAX_FAILURES值。

  • JOB_CLASS :指定任务关联的CLASS,默认值为DEFAULT_JOB_CLASS。关于JOB CLASS的信息就关注本系列的后续文章。

  • ENABLED :指定任务是否启用,默认值为FALSE。FALSE状态表示该任务并不会被执行,除非被用户手动调用,或者用户将该任务的状态修改为TRUE。

  • AUTO_DROP :当该标志被置为TRUE时,ORACLE会在满足条件时自动删除创建的任务

    • 任务已过期;

    • 任务最大运行次数已达MAX_RUNS的设置值;

    • 任务未指定REPEAT_INTERVAL参数,仅运行一次;

    该参数的默认值即为TRUE。用户在执行CREATE_JOB过程时可以手动将该标志指定为FALSE,当参数值设置为FALSE时,即使满足上述提到的条件任务也不会被自动删除,这种情况下,唯一能够导致任务被删除的情况,就是用户主动调用DROP_JOB过程。

  • COMMENTS :设置任务的注释信息,默认值为NULL。

  上面的例子创建了一个新的JOB,不过这个JOB与普通JOB不同,此时查询USER_JOBS视图是查不到刚刚创建的JOB的信息,因为这个JOB是SCHEDULER管理的JOB。要查询SCHEDULER管理的JOS,应该通过USER_SCHEDULER_JOBS(当然ALL_SCHEDULER_JOBS和DBA_SCHEDULER_JOBS也可以),例如:

    SQL> select job_name,job_type,job_action,to_char(start_date,'yyyy-mm-dd hh34:mi:ss'),repeat_interval,enabled,state from user_scheduler_jobs;

    JOB_NAME JOB_TYPE JOB_ACTION TO_CHAR(START_DATE, REPEAT_INTERVAL ENABL STATE

    -------------------- ---------------- ------------------------- ------------------- ------------------------------ ----- ---------------

  • INSERT_TEST_TBL STORED_PROCEDURE P_INSERTINTOTEST 2009-07-27 13:46:50 FREQ=DAILY;INTERVAL=1 FALSE DISABLED

  不过,细心的盆友可能会发现,JOB虽然成功创建了,但却并未执行,这是怎么回事?其实原因很简单,还记的前面介绍CREATE_JOB过程时提到的ENABLED参数吗,当不显式指定时,该参数的默认值为false,JOB自然不会运行了。如果遇到这类情形,如何修改呢?

感谢你能够认真阅读完这篇文章,希望小编分享的"ORACLE如何创建jobs"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

任务 参数 过程 用户 情况 信息 时间 篇文章 关键 关键字 周期 管理 运行 成功 中指 代表 名称 就是 手动 效果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 互联网科技工作委员会 科技金融是不是互联网金融 深圳恒合互联网络科技有限公司 中国最先进互联网科技公司 哈尔滨新华互联网科技学院 互联网科技教育视频 湖南诚度互联网科技有限公司 互联网金融中的现代科技 互联网媒体平台算高科技产业 深圳市优智互联网科技有限公司 互联网科技和信息 天津腾达互联网科技有限公司 玉溪新华互联网科技好不好 美国互联网科技实力 伍佰万互联网科技怎么赚钱 21世纪互联网科技成就 江苏互联网智能科技软件 互联网时代科技型公司的机会 北京天晋互联网科技有限公司 精品咖啡豆 互联网科技 博彦科技互联网金融 互联网品科技 互联网与科技发展 顺网科技2021年互联网排名 无锡溥仪互联网科技有限公司 科技赋能视角下互联网保险发展 上海同邻互联网科技有限公司规模 互联网科技职业技能培训学校
0