DEFINE_PROGRAM_ARGUMENT プロシージャは、プログラムパラメータの名前またはデフォルト値を定義するために使用されます。
プログラムパラメータにデフォルト値が定義されていない場合、そのプログラムを参照するジョブはパラメータ値を提供する必要があります(このジョブはデフォルト値を上書きすることもできます)。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
PROCEDURE define_program_argument(
program_name IN VARCHAR2,
argument_position IN PLS_INTEGER,
argument_name IN VARCHAR2 DEFAULT NULL,
argument_type IN VARCHAR2,
default_value IN VARCHAR2,
out_argument IN BOOLEAN DEFAULT FALSE);
パラメータの説明
| パラメータ | 説明 |
|---|---|
| program_name | 変更するプログラムの名前。この名前を持つプログラムは存在していなければなりません。 |
| argument_position | 実行ファイルにパラメータを渡す際の位置。number_of_arguments はプログラムにパラメータ数を指定します。 |
| argument_name | パラメータに割り当てる名前。argument_name はオプションですが、argument_name を指定する場合はプログラム内で一意である必要があります。1つの名前を指定した場合、その名前は他のプロセスでも使用できます。 |
| argument_type | 定義されたパラメータのデータ型。Schedulerはこのオプションを検証または使用しません。プログラムユーザーはパラメータに値を代入する際に argument_type を使用する必要があります。有効なSQLデータ型をサポートします。 |
| default_value | ジョブでパラメータが指定されていない場合、このデフォルト値をパラメータに指定します。 |
| out_argument | このパラメータは現在使用されておらず、FALSE に設定する必要があります。 |
使用方法
プログラムを有効にする前に、1から number_of_arguments の値までのすべてのプログラムパラメータを定義する必要があります。このプロシージャを使用してパラメータのデフォルト値を定義しない場合、ジョブ内で値を定義する必要があります。
DEFINE_PROGRAM_ARGUMENT はSQL型のパラメータのみをサポートします。したがって、プログラムまたはジョブパラメータは、ブール値などの非SQL型のパラメータ値をサポートしません。
例
BEGIN
dbms_scheduler.define_program_argument(program_name => 'CIDPPROGRAM_', argument_position => 1, argument_type => 'int', default_value => '0', out_argument => false);
COMMIT;
END;/