首批通过分布式安全可靠测评,为关键业务系统打造
DISABLE
更新时间:2026-07-15 15:27:39
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 调用的影响,可以继续运行。当程序被禁用时,与该程序相关的参数不受影响。
示例
禁用
empprogram作业。obclient(SYS@oracle001)[SYS]> delimiter //obclient(SYS@oracle001)[SYS]> BEGIN SYS.DBMS_SCHEDULER.DISABLE( job_name => 'empprogram', force => TRUE, COMMIT_SEMANTICS => 'STOP_ON_FIRST_ERROR'); END;//obclient(SYS@oracle001)[SYS]> delimiter ;禁用定时分区均衡任务。
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE(job_name => 'SCHEDULED_TRIGGER_PARTITION_BALANCE');或者
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');禁用窗口合并任务。
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE(job_name => 'DAILY_MAINTENANCE_WINDOW');或者
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE('DAILY_MAINTENANCE_WINDOW');