首批通过分布式安全可靠测评,为关键业务系统打造
SET_ATTRIBUTE
更新时间:2026-03-31 13:48:36
SET_ATTRIBUTE 过程用于修改 Scheduler 对象的属性。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
语法
DBMS_SCHEDULER.SET_ATTRIBUTE (
name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
参数说明
| 参数 | 说明 |
|---|---|
| name | 指定对象名称。 |
| attribute | 请参见下文的属性值。 |
| value | 指定为属性设置的新值,不能为 NULL。 |
属性值
作业属性值
OceanBase 数据库当前版本支持如下作业相关的属性值。
| 属性名称 | 说明 |
|---|---|
| auto_drop | 该属性可以设置为 TRUE 或者 FALSE,如果设置为 TRUE,则会导致作业在完成或自动禁用后自动删除。 如果出现以下情况,则认为作业已完成:
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。如果在作业运行时更改了任何作业参数值,则更改后的值将在下次作业运行时生效。
如果更改了计划,更改不会影响正在运行的作业。只有在下次作业运行时,更改才会生效。
对于程序,如果修改作业当前正在运行的程序,作业将继续修改之前的属性值运行程序。在下次执行作业时,作业将使用新的属性值运行程序。