从管理任务调度程序中除去任务

可以使用 ADMIN_TASK_REMOVE 过程从任务列表中除去所调度的任务或任务状态记录。

准备工作

您必须对 ADMIN_TASK_REMOVE 过程有 EXECUTE 特权。

关于本任务

即使任务完成了其所有执行并将永远不再执行,该任务也会保留在任务列表中,直到通过调用 ADMIN_TASK_REMOVE 过程明确将其除去为止。


限制

  • 能否成功除去任务以及状态记录取决于当前会话授权标识的值。 当前会话授权标识必须与创建任务时所记录的会话授权标识匹配。 具有 SYSADM、SYSCTRL、SYSMAINT 或 DBADM 权限的用户可以除去任何任务或状态记录。
  • 任务正在执行时,不能除去该任务和状态记录。

过程

  1. 连接至该数据库。
  2. 选项 1:发出以下 SQL 语句以标识将永远不再执行的任务:
    SELECT T.NAME
    FROM SYSTOOLS.ADMIN_TASK_LIST T,
         SYSTOOLS.ADMIN_TASK_STATUS S
    WHERE T.NAME = S.NAME AND
         (S.INVOCATION = T.MAX_INVOCATIONS OR
          T.END_TIME < CURRENT TIMESTAMP) AND
          S.STATUS <> 'RUNNING'
  3. 确定要除去的任务名称或状态记录名称。
  4. 调用 ADMIN_TASK_REMOVE 过程。
  5. 落实更改。

结果

如果除去了一个任务,那么它会从管理调度程序的任务列表中除去。 该任务名称被释放以供将来复用。

可以使用 ADMIN_TASK_LIST 和 ADMIN_TASK_STATUS 管理视图确定已成功除去任务和状态记录。