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_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;/