---
title: "SET_ATTRIBUTE - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: SET_ATTRIBUTE SET_ATTRIBUTE 过程用于修改 Scheduler 对象的属性。 功能适用性 该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。 语法 DBMS_SCHEDULER.SET_ATTRIBUTE ( name IN VARCHAR2, at…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# SET_ATTRIBUTE

更新时间：2026-03-31 13:48:36

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/600.pl-reference/300.pl-oracle/1400.pl-system-package-oracle/14200.dbms-scheduler-oracle/1100.set-attribute-oracle.md)  

`SET_ATTRIBUTE` 过程用于修改 Scheduler 对象的属性。

#### 功能适用性

该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。

## 语法

```sql
DBMS_SCHEDULER.SET_ATTRIBUTE (
name        IN  VARCHAR2,
attribute   IN  VARCHAR2,
value       IN  VARCHAR2);

```

## 参数说明

| 参数 | 说明 |
| --- | --- |
| name | 指定对象名称。 |
| attribute | 请参见下文的**属性值**。 |
| value | 指定为属性设置的新值，不能为 `NULL`。 |

## 属性值

### 作业属性值

OceanBase 数据库当前版本支持如下作业相关的属性值。

| 属性名称 | 说明 |
| --- | --- |
| auto_drop | 该属性可以设置为 `TRUE` 或者 `FALSE`，如果设置为 `TRUE`，则会导致作业在完成或自动禁用后自动删除。 如果出现以下情况，则认为作业已完成：   - 作业结束日期（或作业计划的结束日期）已过。 - 作业已运行 `max_runs` 次。必须使用 `SET_ATTRIBUTE` 设置 `max_runs`。 - 该作业非重复的作业，只运行过一次。   当作业执行失败 `max_failures` 次时，将被禁用。`max_failures` 也使用 `SET_ATTRIBUTE` 设置。 如果 `auto_drop` 设置为 `FALSE`，则不会删除作业，并保留其元数据，直到使用 `DROP_JOB` 过程显式删除作业。 默认情况下，创建作业时将 `auto_drop` 设置为 `TRUE`。   #### 说明    当前版本暂不支持该属性值。 |
| comments | 注释，为可选项。   #### 说明    当前版本暂不支持该属性值。 |
| credential_name | 此属性指定用于作业的凭据对象的名称。 对于本地数据库作业，它的值必须为 `NULL`。仅对于本地外部作业，如果此属性为 `NULL`（默认），则选择首选（默认）凭据。   #### 说明    当前版本暂不支持该属性值。 |
| destination_name | 指定作业的数据库目标或外部目标。仅用于远程数据库作业和远程外部作业。对于在本地数据库上运行的作业或本地外部作业（可执行文件），此属性必须为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| end_date | 指定作业过期且不再运行的日期和时间。在 `end_date` 之后，如果 `auto_drop` 为 `TRUE`，则作业将被删除。如果 `auto_drop` 为 `FALSE`，则作业被禁用，而且作业的 `STATE` 设置为 `COMPLETED`。 如果未指定 `end_date` 的值，则作业将被一直重复执行，除非设置了 `max_runs` 或者 `max_failures`，在这种情况下，当达到其中任一值时，作业将停止运行。 `end_date` 的值必须在 `start_date` 的值之后，否则会报错。如果 `end_date` 的值与 `start_date` 的值相同，则作业不会被执行，但也不会报错。   #### 说明    当前版本暂不支持该属性值。 |
| job_action | 作业执行的操作，具体值取决于 `job_type` 属性。例如，如果作业类型为 `STORED_PROCEDURE`，则 `job_action` 包含存储过程的名称。   #### 说明    当前版本暂不支持该属性值。 |
| job_class | 与此作业相关联的类。 |
| job_name | 指定作业的名称。该名称在 SQL 命名空间中必须是唯一的。 如果正在创建的作业属于另一个 Schema，则必须使用 Schema 名称对其进行限定。如果未指定作业名称，则会报错。 也可以使用 `GENERATE_JOB_NAME` 过程由 Scheduler 生成名称，该名称是通过序列生成的数字，可以将字符串作为数字的前缀，则作业名称将是带有序列号的字符串，然后用于 `CREATE_JOB` 过程。   #### 说明    当前版本暂不支持该属性值。 |
| job_priority | 此属性指定此作业相对于与此作业在同一类中的其他作业的优先级。如果计划同时执行一个类中的多个作业，则作业优先级决定该类中作业的执行顺序。它可以是 1 到 5 之间的值，1 表示第一个被执行的作业。如果创建作业时未指定作业优先级，则默认优先级为 3。   #### 说明    当前版本暂不支持该属性值。 |
| job_type | 指定要创建的作业的类型。如果未指定，则会生成错误。 当前仅支持 `STORED_PROCEDURE`。 如果设置了此选项，`program_name` 必须为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| max_failures | 此属性指定作业在自动禁用之前，作业在连续运行失败的次数。一旦作业被禁用，它将不再执行。 `max_failures` 可以是 1 到 1000000 之间的整数。默认设置为 `NULL`，表示无论以前的实例执行失败多少次，都会启动作业的新实例。 |
| max_runs | 此属性指定作业连续运行的最大次数。一旦达到最大运行时间，作业将被禁用，其状态将更改为 `COMPLETED`。 最大运行次数可以是 1 到 1000000 之间的整数。默认设置为 `NULL`，表示永远重复执行，或直到达到 `end_date` 或 `max_failures` 的值时才停止执行。   #### 说明    当前版本暂不支持该属性值。 |
| number_of_argument | 指定内联程序的作业的参数数量。如果设置了此选项，`program_name` 的值应该为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| program_name | 与此作业关联的程序的名称。如果程序类型为 `EXECUTABLE`，则 `job_action`、`job_type` 和 `number_of_arguments` 的值应该为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| repeat_interval | 返回下一个运行日期和时间的 PL 函数，或日历语法表达式。如果设置了此选项，则 `schedule_name` 的值应该为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| start_date | 此作业开始或计划开始的初始日期和时间。 如果设置了此选项，则 `schedule_name` 的值应该为 `NULL`。   #### 说明    当前版本暂不支持该属性值。 |
| instance_id | 默认情况下，作业都在 Primary Zone 上执行。 `instance_id` 指定作业在对应的 `ZONE` 上执行，如果指定 `instance_id` 为 `RANDOM`（即设置 子程序中参数 `value` 的值为 `RANDOM`），作业会随机发往所有 `ZONE`。 |

### 程序属性值

| 参数 | 说明 |
| --- | --- |
| comments | 注释，为可选项。可以描述程序的功能或程序的使用细节。 |
| number_of_arguments | 程序所需的参数数量。 |
| program_type | 程序的类型，目前支持 `STORED_PROCEDURE` 的程序类型。 |
| program_action | 程序执行的操作，通过 `program_type` 属性指定。例如，如果程序类型为`STORED_PROCEDURE`，则 `program_action` 包含存储过程的名称。 |

## 使用说明

如果要更改一个处于启用状态的对象，Scheduler 首先禁用它，然后进行更改并重新启用。如果在启用过程中遇到任何错误，则不会重新启用该对象并生成报错信息；如果更改某个处于禁用状态的对象，则更改后该对象仍处于禁用状态。

对于作业：

- 如果作业在调用 `SET_ATTRIBUTE` 时，作业存在运行实例，则该实例不受调用的影响，所作的更改只会影响作业之后的运行操作。
 - 如果在作业运行时更改了作业的任何计划相关属性，则将使用更改后的属性来计划下一次作业运行的时间。作业的计划属性包括 `schedule_name`、`start_date`、`end_date` 和 `repeat_interval`。
 - 如果在作业运行时更改了作业的任何程序属性，则更改后的程序属性将在下次作业运行时生效。作业的程序属性包括 `program_name`、`job_action`、`job_type` 和 `number_of_arguments`。
 - 如果在作业运行时更改了任何作业参数值，则更改后的值将在下次作业运行时生效。
 - 如果更改了计划，更改不会影响正在运行的作业。只有在下次作业运行时，更改才会生效。

对于程序，如果修改作业当前正在运行的程序，作业将继续修改之前的属性值运行程序。在下次执行作业时，作业将使用新的属性值运行程序。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
