SET_JOB_ARGUMENT_VALUE プロシージャは、ジョブパラメータの値を設定します。
SET_JOB_ARGUMENT_VALUE は、対応するプログラムまたはストアドプロシージャに設定されたパラメータのデフォルト値を上書きします。パラメータは、位置または名前で指定できます。または、DEFINE_PROGRAM_ARGUMENT プロシージャを使用してパラメータに名前を割り当てることもできます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
位置によるパラメータ値の設定
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name IN VARCHAR2,
argument_position IN PLS_INTEGER,
argument_value IN VARCHAR2);
名前によるパラメータ値の設定
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name IN VARCHAR2,
argument_name IN VARCHAR2,
argument_value IN VARCHAR2);
パラメータの説明
| パラメータ | 説明 |
|---|---|
| job_name | 変更するジョブの名前。 |
| argument_name | 設定しているプログラムパラメータの名前。 |
| argument_position | 設定しているプログラムパラメータの位置。 |
| argument_value | プログラムパラメータに設定する新しい値。 |
使用方法
SET_JOB_ARGUMENT_VALUE を使用するには、ジョブの所有者であるか、そのジョブに対して ALTER 権限を持っている必要があります。CREATE ANY JOB 権限がある場合は、ジョブのパラメータ値も設定できます。
SET_JOB_ARGUMENT_VALUE はSQL型のパラメータのみをサポートします。したがって、プログラムまたはジョブのパラメータでは、ブール値などの非SQL型のパラメータ値はサポートされません。
ただし、パラメータタイプが VARCHAR2 の場合に限り、SET_JOB_ARGUMENT_VALUE を使用して軽量ジョブのパラメータを設定できます。
例
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'empprog',
program_type => 'STORED_PROCEDURE',
program_action => 'hr.empproc',
number_of_arguments => 1,
enabled => FALSE);
DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT (
program_name =>'empprog',
argument_name =>'emp_no',
argument_position => 1,
argument_type =>'VARCHAR2',
default_value => '0',
out_argument => false);
DBMS_SCHEDULER.ENABLE (job_name => 'empprog');
DBMS_SCHEDULER.DROP_JOB (
job_name =>'job_insert_emp',
force => TRUE);
DBMS_SCHEDULER.CREATE_JOB (
job_name =>'job_insert_emp',
program_name =>'empprog',
auto_drop => TRUE,
start_date => SYSDATE,
job_style => 'LIGHTWEIGHT');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name =>'job_insert_emp',
argument_name =>'emp_no',
argument_value =>'1357');
DBMS_SCHEDULER.ENABLE ( job_name => 'job_insert_emp');
END;