SET_ATTRIBUTE

2023-12-25 08:49:42  Updated

The SET_ATTRIBUTE procedure modifies the attributes of a Scheduler object.

Applicability

This topic applies only to OceanBase Database Enterprise Edition. OceanBase Database Community Edition provides only the MySQL mode.

Syntax

DBMS_SCHEDULER.SET_ATTRIBUTE (
job_name  IN  VARCHAR2,
name      IN  VARCHAR2,
value     IN  VARCHAR2);

Parameters

Parameter Description
name The name of the object.
attribute For more information, see the following Attribute values section.
value The new value that is set for the attribute. The value of this parameter cannot be NULL.

Attribute values

Values of job attributes

OceanBase Database supports the following job attributes:

Attribute Description
auto_drop Valid values: TRUE and FALSE. If you set it to TRUE, the job is automatically dropped or disabled after it is completed. A job is considered completed if one of the following conditions is met:
  • The end date of the job or the end date of its schedule has passed.
  • The job has run max_runs times. You must call the SET_ATTRIBUTE procedure to set the max_runs attribute.
  • The job is one-time and has run once.
The job is automatically disabled if its execution fails max_failures times. You must call the SET_ATTRIBUTE procedure to set the max_failures attribute. If you set the auto_drop attribute to FALSE, the job is not dropped, and its metadata is retained. You can call the DROP_JOB procedure to explicitly drop the job. By default, the auto_drop attribute is set to TRUE when you create a job.
comments The comments about the job. This attribute is optional.
credential_name The name of the credential object that is used for the job. For a local database job, the value must be NULL. For a local external job, if the default value NULL is used, the default credential is selected.
destination_name The destination database or external destination of the job. This attribute is available only for remote database jobs and remote external jobs. For a job running on a local database or a local external job (an executable file), the value must be NULL.
end_date The timestamp that consists of the date and time after which the job expires and no longer runs. If the auto_drop attribute is set to TRUE, the job is dropped after the time specified in end_date. If the auto_drop attribute is set to FALSE, the job is disabled, and the status of the job is set to COMPLETED. If you do not set the end_date attribute, the job is repeatedly executed. In this case, if you set the max_runs or max_failures attribute, the job stops running when either of the values is reached. The time specified in the end_date attribute must be later than that in the start_date attribute. Otherwise, an error is returned. If the value of the end_date and start_date attributes are the same, the job is not executed, and no error is returned.
job_action The operation that the job performs. The value depends on the job_type attribute. For example, if the job type is STORED_PROCEDURE, the job_action attribute contains the name of the stored procedure.
job_class The class to which the job belongs.
job_name The name of the job. The name must be unique in the SQL namespace. If you are creating a job that belongs to another schema, you must qualify it with the schema name. If you do not specify the job name, an error is returned. You can also call the GENERATE_JOB_NAME procedure to use the Scheduler to generate a name, which is a serial number generated in order. You can prefix a string to the number. As a result, the job name is a string with a serial number and can be used in the CREATE_JOB procedure.
job_priority The priority of the job in its class. If multiple jobs in a class are scheduled to execute at the same time, the execution order is determined by the job priority. The attribute value can be an integer from 1 to 5. The value 1 indicates that the job is the first to be executed. If you do not specify the job priority during job creation, the default job priority is 3.
job_type The type of the job. If you do not specify the job type, an error is returned. You can specify only STORED_PROCEDURE. If you set this parameter to STORED_PROCEDURE, the value of the program_name attribute must be NULL.
max_failures The number of times the job can fail on consecutive runs before it is automatically disabled. Once a job is disabled, it is no longer executed. The value of the max_failures attribute can be an integer from 1 to 1,000,000. The default value is NULL, which indicates that a new instance is started for the job regardless of the number of previously failed instances.
max_runs The maximum number of times the job can consecutively run. Once the specified maximum number of times is reached, the job is disabled, and its status changes to COMPLETED. The attribute value can be an integer from 1 to 1,000,000. The default value is NULL, which indicates that the execution is repeated forever or until the value of the end_date or max_failures attribute is reached.
number_of_argument The number of job arguments of the associated program. If you set this attribute, the value of the program_name attribute must be NULL.
program_name The name of the program that is associated with the job. If the program type is EXECUTABLE, the value of the job_action, job_type, and number_of_arguments attributes must be NULL.
repeat_interval The procedural language (PL) function or calendar syntax expression that returns the next runtime of the job (including the date and time). If you set this attribute, the value of the schedule_name attribute must be NULL.
start_date The initial date and time when the job started or is scheduled to start. If you set this attribute, the value of the schedule_name attribute must be NULL.

Values of program attributes

Attribute Description
comments The comments about the job. This attribute is optional. You can add comments to describe the program features or the details about the program usage.
number_of_arguments The number of arguments the program requires.
program_type The type of the program. Only the STORED_PROCEDURE type is supported.
program_action The operation performed by the program. The operation is indicated by the program_type attribute. For example, if the program type is STORED_PROCEDURE, the program_action attribute contains the name of the stored procedure.

Considerations

If you change an enabled object, the Scheduler disables it, changes it, and then re-enables it. If an error occurs during enabling, the object is not re-enabled, and an error message is returned. If you change a disabled object, the object remains disabled after the change.

For jobs:

  • If a job has a running instance while calling the SET_ATTRIBUTE procedure, the instance is not affected by the call, and the changes affect only the operations of the job after the call.

  • If a schedule attribute of the job is changed during the running of the job, the next runtime is scheduled based on the new attribute values. The schedule attributes of a job include schedule_name, start_date, end_date, and repeat_interval.

  • If a program attribute of the job is changed during job running, the new attribute value takes effect for the next running of the job. The program attributes of a job include program_name, job_action, job_type, and number_of_arguments.

  • If an attribute of the job is changed during job running, the new attribute value takes effect for the next running of the job.

  • If the schedule of a job is changed during job running, the change does not affect the current running and takes effect for the next running.

If a running program of a job is changed, the program runs based on the attribute values before the change. The new attribute values take effect for the next running of the job.

Contact Us