You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DBMS_SCHEDULER禁用Oracle中的调度任务

禁用DBMS_SCHEDULER调度任务操作方法

前置要求

  • 你需要是该调度任务的所有者,或持有ALTER ANY JOB系统权限、SCHEDULER_ADMIN角色

操作步骤

1. 确认待禁用任务的准确名称

先执行查询确认任务存在且当前状态,避免操作错任务:

-- 查询当前用户名下所有调度任务的名称和启用状态
SELECT job_name, enabled FROM user_scheduler_jobs;

-- 若有权限查询全库调度任务,可使用DBA视图
SELECT owner, job_name, enabled FROM dba_scheduler_jobs WHERE owner = '任务所属用户名';

2. 执行禁用操作

基础禁用(无正在运行的任务实例时使用)

直接调用DISABLE存储过程即可:

BEGIN
  DBMS_SCHEDULER.DISABLE(
    job_name => '你的调度任务名称'
  );
END;
/
-- 也可以用简写EXEC语句
EXEC DBMS_SCHEDULER.DISABLE('你的调度任务名称');

强制禁用(存在正在运行的任务实例时使用)

如果当前任务有正在运行的实例,添加force => true参数,会先终止运行中的实例再完成禁用:

EXEC DBMS_SCHEDULER.DISABLE(job_name => '你的调度任务名称', force => true);

3. 验证禁用结果

再次查询任务状态,确认ENABLED字段值为FALSE即可:

SELECT job_name, enabled FROM user_scheduler_jobs WHERE job_name = '你的调度任务名称';

注意事项

  • Oracle默认将元数据存储为大写,若你创建任务时使用双引号指定了小写/特殊大小写的任务名,调用DISABLE时需要严格匹配大小写,同时给任务名加双引号,示例:EXEC DBMS_SCHEDULER.DISABLE('"my_lowercase_job"');
  • 禁用操作只会停止任务后续的调度触发,不会删除任务本身,后续需要恢复时可调用DBMS_SCHEDULER.ENABLE('任务名')重新启用。

内容的提问来源于stack exchange,提问作者IT Expert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:39:01