DISABLE プロシージャは、プログラムやジョブを無効にするために使用されます。
Schedulerオブジェクトが無効化されると、その enabled プロパティは FALSE に設定されます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_SCHEDULER.DISABLE (
job_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE,
commit_semantics IN VARCHAR2 DEFAULT 'STOP_ON_FIRST_ERROR');
パラメータ説明
パラメータ |
説明 |
|---|---|
| job_name | 無効にするジョブの名前です。複数のジョブ名はカンマ区切りのリストとして指定できます。ジョブクラス名を指定した場合、そのジョブクラス内のすべてのジョブが無効化されますが、ジョブクラス自体は無効化されません。グループ名を指定した場合、そのグループが無効化されますが、グループメンバーの有効状態は影響を受けません。 システム内部で定義されているスケジュールタスクは以下の通りです:
|
| force | TRUE の場合、他のオブジェクトがそのオブジェクトに依存していても、そのオブジェクトを無効化します。 |
| commit_semantics | コミットセマンティクス。以下のタイプをサポートします:
|
使用方法
既に無効化されたオブジェクトを無効化してもエラーは発生しません。
force オプションの目的は依存関係を認識することであり、依存オブジェクトを変更するものではありません。
ジョブを無効化するということは、ジョブのメタデータは存在するものの、処理や実行を行うべきではない状態にすることです。ジョブが無効化されると、ジョブキュー内の state は disabled に変更されます。force が FALSE に設定されており、かつジョブが現在実行中の場合は、エラーが返されます。force が TRUE に設定されている場合、ジョブは無効化されますが、現在実行中のインスタンスが実行を完了することは許可されます。
プログラムが無効化されると、その状態は無効に変わります。無効化されたプログラムとは、メタデータは依然として存在するものの、そのプログラムを参照するジョブは実行できない状態を指します。force が FALSE に設定されている場合、どのジョブもそのプログラムを参照してはならず、そうでない場合はエラーが発生します。force が TRUE に設定されている場合、そのプログラムを参照するジョブは無効化されません。なぜなら、それらのジョブのプログラムが無効になり、実行に失敗するからです。そのプログラムを参照して実行中のジョブは DISABLE 呼び出しの影響を受けず、実行を続けることができます。プログラムが無効化されると、そのプログラムに関連するパラメータは影響を受けません。
例
empprogramジョブを無効化します。obclient(SYS@oracle001)[SYS]> delimiter //obclient(SYS@oracle001)[SYS]> BEGIN SYS.DBMS_SCHEDULER.DISABLE( job_name => 'empprogram', force => TRUE, COMMIT_SEMANTICS => 'STOP_ON_FIRST_ERROR'); END;//obclient(SYS@oracle001)[SYS]> delimiter ;スケジュールされたパーティションの均等化タスクを無効にします。
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE(job_name => 'SCHEDULED_TRIGGER_PARTITION_BALANCE');または
obclient(SYS@oracle001)[SYS]> CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');