ORA-27465: 属性 ARGUMENT_POSITION 的值 1 无效

SK *_*kub 3 oracle jobs scheduler dbms-scheduler

我在包中有这样的程序

PROCEDURE prepBillInfoforAccrualIntr (p_date in date);
Run Code Online (Sandbox Code Playgroud)

-- 创建了一个程序

BEGIN
  DBMS_SCHEDULER.CREATE_PROGRAM(PROGRAM_NAME        => 'MY_PROGRAM',
                                PROGRAM_TYPE        => 'STORED_PROCEDURE',
                                PROGRAM_ACTION      => 'GENEVA_ADMIN.IPGTIBCOAPIS_LMS_GENERIC_FIXED.PREPBILLINFOFORACCRUALINTR',
                                NUMBER_OF_ARGUMENTS => 1,
                                ENABLED             => FALSE,
                                COMMENTS            => 'MY PROGRAM');
END;
Run Code Online (Sandbox Code Playgroud)

-- 定义参数

BEGIN
  DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT(PROGRAM_NAME      => 'MY_PROGRAM',
                                         ARGUMENT_NAME     => 'P_DATE',
                                         ARGUMENT_POSITION => 1,
                                         ARGUMENT_TYPE     => 'DATE',
                                         DEFAULT_VALUE     => '');
END;
Run Code Online (Sandbox Code Playgroud)

-- 启用

BEGIN
  DBMS_SCHEDULER.ENABLE(NAME => 'MY_PROGRAM');
END;
Run Code Online (Sandbox Code Playgroud)

-- 创造了一份工作

BEGIN
  DBMS_SCHEDULER.CREATE_JOB(JOB_NAME   => 'MY_TEST_JOB',
                           -- PROGRAM_NAME => 'MY_PROGRAM',
                            JOB_TYPE   => 'STORED_PROCEDURE',
                            JOB_ACTION => 'GENEVA_ADMIN.IPGTIBCOAPIS_LMS_GENERIC_FIXED.PREPBILLINFOFORACCRUALINTR',
                            START_DATE => SYSDATE,
                            AUTO_DROP  => TRUE,
                            COMMENTS   => 'MY NEW JOB');
END;
Run Code Online (Sandbox Code Playgroud)

-- 并传递参数

BEGIN
  DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME          => 'MY_TEST_JOB',
                                        ARGUMENT_POSITION => 1,
                                        ARGUMENT_VALUE    => '06-JUL-2017');
END;
Run Code Online (Sandbox Code Playgroud)

它给出以下错误。

ORA-27465: invalid value 1 for attribute ARGUMENT_POSITION
Run Code Online (Sandbox Code Playgroud)

我想将静态日期传递为06-JUL-2017. 我也尝试过

dbms_scheduler.set_job_anydata_value

但得到同样的错误。

能否请你帮忙。

谢谢,

SK *_*kub 5

我知道问题出在哪里了。

我们DBMS_SCHEDULER.CREATE_JOB需要通过NUMBER_OF_ARGUMENTS这样DBMS_SCHEDULER.SET_JOB_ANYDATA_VALUEDBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE不会给出错误。

感谢大家的支持。