SET_ATTRIBUTEプロシージャは、Schedulerオブジェクトのプロパティを変更するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
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ネームスペース内で一意でなければなりません。作成中のジョブが別のスキーマに属している場合は、スキーマ名を使用して限定する必要があります。ジョブ名が指定されていない場合、エラーが報告されます。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 の値に達するまで実行が停止されないことを意味します。
説明現在のバージョンではこのプロパティ値はサポートされていません。 |
| max_run_duration | ジョブの最大実行時間を制御します。 |
| 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が含まれます。ジョブの実行中にジョブパラメータ値を変更した場合、変更後の値は次回のジョブ実行時に有効になります。
スケジュールを変更しても、実行中のジョブには影響しません。変更は次回のジョブ実行時にのみ有効になります。
プログラムについて、ジョブが現在実行中のプログラムを変更した場合、ジョブは以前のプロパティ値でプログラムを実行し続けます。次回ジョブが実行されるとき、ジョブは新しいプロパティ値でプログラムを実行します。