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 の値に達するまで実行が停止されないことを意味します。
説明現在のバージョンでは、このプロパティの値はサポートされていません。 |
| 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が含まれます。ジョブの実行時にジョブパラメータの値を変更した場合、変更後の値は次回のジョブ実行時に有効になります。
スケジュールを変更しても、実行中のジョブには影響しません。変更は次回のジョブ実行時にのみ反映されます。
プログラムについて、ジョブが現在実行中のプログラムを変更しても、ジョブは変更前の属性値でプログラムを実行し続けます。次回ジョブを実行する際に、新しい属性値を使用してプログラムが実行されます。