Oracle DBMS_JOB完全指南:使用与解析

需积分: 24 4 下载量 23 浏览量 更新于2024-09-17 收藏 33KB DOC 举报
"DBMS_JOB使用方法" DBMS_JOB是一个Oracle数据库提供的包,用于调度和管理后台任务,也称为jobs。这些任务可以是PL/SQL块,它们可以在预定义的时间间隔自动执行。以下是对DBMS_JOB包中各个过程的详细说明: 1. Broken()过程: 此过程用于更改job的状态,特别是将其标记为broken(故障)或unbroken(正常)。当一个job由于某种原因无法执行时,可以使用Broken()将其标记为broken,以便稍后解决。参数包括: - job:标识job的唯一ID。 - broken:布尔值,决定job是否被标记为broken。 - next_date:下次尝试运行job的日期和时间,默认为当前日期和时间。 2. Change()过程: 这个过程允许修改已经存在的job的属性,如执行的PL/SQL代码、下次运行的时间和执行频率。参数包括: - job:要修改的job的ID。 - what:新的PL/SQL代码块。 - next_date:新设定的下次执行时间。 - interval:新的执行间隔。 3. Interval()过程: 此过程用于设定job之间的执行间隔。如果希望调整已存在的job的执行频率,可以使用Interval()。参数包括: - job:需要设定间隔的job的ID。 - interval:新的执行间隔,可以是基于时间单位的表达式,如'5 MINUTES'。 4. ISubmit()过程: 提交一个新的job,并赋予其特定的ID、执行的PL/SQL代码、初始运行时间和执行频率。参数包括: - job:新job的ID。 - what:要执行的PL/SQL代码。 - next_date:首次运行的日期和时间。 - interval:job的执行间隔。 - no_parse:可选参数,若设为TRUE,则不会解析PL/SQL代码,用于避免在提交时立即执行。 5. Next_Date()过程: 返回job的下次运行时间。通常用于查询job的计划执行时间,但不修改它。参数仅包含job ID。 6. Remove()过程: 从调度器中删除一个job,使其不再运行。参数为job ID。 7. Run()过程: 强制立即执行一个job,而不是等待其预定的执行时间。参数是job ID。 8. Submit()过程: 与ISubmit类似,用于提交新job,但在提交时不会指定no_parse参数。 9. User_Export()过程: 此过程可能用于导出与用户相关的job信息,但具体行为依赖于Oracle版本和实现。 10. What()过程: 查询或设置job所要执行的PL/SQL代码。这可以用于查看或更改job的任务。 在使用DBMS_JOB时,需要注意的是,调用的PL/SQL过程不应包含输入/输出参数,且用户需要有resource权限才能创建和管理jobs。通过这些过程,DBMS_JOB提供了强大的工具,使得在Oracle数据库环境中进行定时任务管理和自动化变得更加便捷。