Oracle DBMS_Job包详解及子过程介绍

需积分: 24 0 下载量 103 浏览量 更新于2024-09-14 收藏 33KB DOC 举报
"DBMS_Job包是Oracle数据库中用于计划和管理后台作业的内置包,提供了对定时任务的创建、修改、删除、运行等操作。本文将详细介绍DBMS_Job包中的各个子过程及其用途。 1、Broken()过程 Broken()过程允许用户更新一个已经提交的作业状态,特别是用来标记或取消标记一个作业为“broken”。它接受三个参数:job(作业编号)、broken(布尔值,表示作业是否被标记为broken)和next_date(下次运行的日期,可选,缺省为当前日期)。通过这个过程,可以控制作业的执行状态,例如当作业出现问题时,可以将其标记为broken,防止其继续执行。 2、Change()过程 Change()过程用于修改已存在的作业配置,包括其执行的PL/SQL代码块、下次执行的日期以及执行间隔。它接受四个参数:job(作业编号)、what(PL/SQL代码块)、next_date(下次执行的日期)和interval(执行间隔)。通过这个过程,可以动态调整作业的执行时间和频率,以适应业务需求的变化。 3、Interval()过程 Interval()过程主要用于设定作业之间的重执行间隔。它有两个参数:job(作业编号)和interval(执行间隔)。用户可以借此调整作业的执行周期,如每隔一小时、一天等,以便更精确地控制作业的执行节奏。 4、ISubmit()过程 ISubmit()过程用于提交一个新的作业,分配一个特定的工作号,并设置其初始执行时间、执行间隔和是否解析参数。它需要五个参数:job(作业编号)、what(PL/SQL代码块)、next_date(首次执行日期)、interval(执行间隔)和no_parse(布尔值,决定是否立即解析PL/SQL代码)。这个过程是创建新作业的关键步骤。 5、Next_Date()过程 Next_Date()返回给定作业的下一个预计执行日期。这个信息对于监控和调度作业非常有用。 6、Remove()过程 Remove()过程用于删除指定的作业,确保该作业不再执行。只有一个参数:job,表示要移除的作业编号。 7、Run()过程 Run()过程强制立即执行一个作业,而不等待预定的执行时间。同样需要job参数来指定要运行的作业。 8、Submit()过程 Submit()过程与ISubmit()类似,都是用于提交新的作业,但不接受no_parse参数,意味着每次作业执行时都会重新解析PL/SQL代码。 9、User_Export()过程 User_Export()是一个辅助过程,用于导出用户的作业信息,通常用于备份或迁移作业配置。 10、What()过程 What()过程返回指定作业的PL/SQL代码块,帮助用户查看或验证作业的执行内容。 在使用DBMS_Job包时,用户需要具备相应的权限,如RESOURCE权限。这些过程提供了全面的作业管理功能,使DBA或开发人员能够灵活地安排和控制数据库的后台任务,确保系统的稳定运行和任务的按时完成。"