SUBMIT ストアドプロシージャは、新しいジョブをコミットするために使用されます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみ提供しています。
構文
DBMS_JOB.SUBMIT (
job OUT BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE DEFAULT SYSDATE,
interval IN VARCHAR2 DEFAULT 'null',
no_parse IN BOOLEAN DEFAULT FALSE,
zone IN VARCHAR2 DEFAULT NULL,
force IN BOOLEAN DEFAULT FALSE);
パラメータの説明
パラメータ |
説明 |
|---|---|
| job | 新しく作成されたJobのIDを返します。このIDを確認するには、USER_JOBSまたはDBA_JOBSビューのJOB列をクエリします。 |
| what | ジョブで実行するPLテキスト。有効なPLステートメントまたはコードブロックである必要があります。whatパラメータで送信されるSQLは、以下のPLブロックに含まれます: DECLARE job BINARY_INTEGER := :job; next_date DATE := :mydate; broken BOOLEAN := FALSE; BEGIN WHAT :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END; |
| next_date | Jobが実行される次の日付です。 |
| interval | 次回Jobを実行する日付を計算する関数です。デフォルト値はNULLです。将来の時刻またはNULLである必要があります。 |
| no_parse | デフォルト値はFALSEです。FALSEに設定すると、Jobに関連付けられたストアドプロシージャは解析されません。TRUEに設定すると、Jobが初めて実行される際に、Jobに関連付けられたストアドプロシージャが解析されます。例えば、Jobに関連付けられたテーブルを作成する前にJobを送信したい場合は、TRUEに設定します。 |
| zone | Jobを送信する際、ユーザーはそのJobを実行できるZoneを指定できます。 |
| force | TRUEの場合、Jobを強制的に実行します。FALSEの場合、Jobが実行状態にない場合にのみ現在のJobを実行します。 |
使用方法
コミットする前は、ジョブはバックグラウンドのジョブキューによって処理されません。
ジョブキューに関連パラメータ
zoneとforceを追加し、ユーザーがコミットするジョブの実行可否をゾーンで指定できるようにしました。
例
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
ALTER SESSION SET nls_timestamp_format ='YYYY-MM-DD HH24:MI:SS.FF';
DECLARE
job01 BINARY_INTEGER;
BEGIN
DBMS_JOB.SUBMIT(job01 ,'dbms_stats.gather_database_stats_job_proc();', sysdate,'sysdate+1');
COMMIT;
END;/