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 呼び出しの影響を受けず、実行を続けることができます。プログラムが無効になると、そのプログラムに関連するパラメータは影響を受けません。
例
-- すべてのjobを確認する(DBA権限が必要です)
SELECT JOB, LOG_USER, WHAT, NEXT_DATE, INTERVAL, BROKEN, FAILURES
FROM DBA_JOBS;
BEGIN
SYS.DBMS_SCHEDULER.DISABLE(
job_name => 'empprogram',
force => TRUE,
COMMIT_SEMANTICS => 'STOP_ON_FIRST_ERROR');
END;