存储过程在创建时给输入参数指定了默认值,使用 DBMS_SCHEDULER.create_program 创建程序调用包中的存储过程,我想可以直接使用存储过程时创建时指定的默认值,没有给参数赋值,第二天看作业日志提示参数没值,我想知道使用DBMS_SCHEDULER.create_program不能直接使用存储过程中的默认值吗先前一直是手动执行存储过程,现在执行一次时间太久,打算做成job每天自动执行的。所以我的存储过程是可以使用默认值成功执行的。以下是我的存储过程:
procedure zbjs_app_exe(b_month in varchar2 default to_char(sysdate,'yyyy-mm'),e_month in varchar2 default to_char(sysdate,'yyyy-mm')) 以下是程序截图

解决方案 »

  1.   

    没有用过你的调度程序- -
    1,你手动不输入参数可以执行吧?
    2,在那个调度程序默认值下拉框有值没,默认值输to_char(sysdate,'yyyy-mm')试试?
      

  2.   

    试试这个行不行
    begin
      sys.dbms_job.submit(job => :job,
                          what => 'zbjs_app_exe('''||to_char(sysdate,'yyyy-mm')||''','''||to_char(sysdate,'yyyy-mm')||''');');
      commit;
    end;
    /
      

  3.   


    手动不输入参数是可以的
    下拉框就是我没输入值,输入to_char(sysdate,'yyyy-mm') 这个是不支持的 。我试过了
    谢谢兄弟回答
      

  4.   


    现在新版本都用DBMS_SCHEDULER 了,这个dbms_job.submit(也用过的,只是不如DBMS_SCHEDULER 方便,DBMS_SCHEDULER 可以把多个存储过程放在一个job中按步骤执行,使用方便一点,谢谢兄弟回答