首批通过分布式安全可靠测评,为关键业务系统打造
DISABLE
更新时间:2026-03-26 17:56:44
DISABLE 过程用于禁用程序和作业。
当 Scheduler 对象被禁用时,其 enabled 属性设置为 FALSE。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
语法
DBMS_SCHEDULER.DISABLE (
job_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE,
commit_semantics IN VARCHAR2 DEFAULT 'STOP_ON_FIRST_ERROR');
参数说明
| 参数 | 说明 |
|---|---|
| job_name | 要禁用的作业的名称。多个作业名称可以是逗号分隔的列表。如果指定了作业类名称,则该作业类中的所有作业都将被禁用,该作业类不会被禁用。如果指定了组名,则该组将被禁用,但组成员的启用状态不受影响。 |
| force | 如果为 TRUE,则即使其他对象依赖该对象,也会禁用该对象。 |
| commit_semantics | 提交语义。 支持以下类型:
|
使用说明
禁用已禁用的对象不会产生报错。
force 选项的目的是识别依赖关系,并不改变依赖对象。
禁用作业是指,尽管作业的元数据存在,但却不应该被处理和运行。当作业被禁用时,其在作业队列中的 state 将更改为 disabled。如果 force 设置为 FALSE 且作业当前正在运行,则返回错误。如果 force 设置为 TRUE,则作业将被禁用,但允许当前运行的实例完成运行。
当程序被禁用时,状态变为禁用。禁用的程序是指,尽管元数据仍然存在,但指向该程序的作业无法运行。如果 force 设置为 FALSE,则任何作业都不得引用该程序,否则将发生错误。如果 force 设置为 TRUE,则指向该程序的作业不会被禁用,因为它们的程序变为无效,它们将运行失败。指向该程序的正在运行的作业不受 DISABLE 调用的影响,可以继续运行。当程序被禁用时,与该程序相关的参数不受影响。
示例
-- 查看所有 job(需要 DBA 权限)
SELECT JOB, LOG_USER, WHAT, NEXT_DATE, INTERVAL, BROKEN, FAILURES
FROM DBA_JOBS;
BEGIN
SYS.DBMS_SCHEDULER.DISABLE(
job_name => 'empprogram',
force => TRUE,
COMMIT_SEMANTICS => 'STOP_ON_FIRST_ERROR');
END;