为我的存储过程创建oracle JOB

时间:2016-03-09 12:11:36

标签: oracle

我正在尝试为c_insert_ship_confirm_start创建一个Oracle作业。

BEGIN
    SYS.DBMS_SCHEDULER.CREATE_JOB (
            job_name => '"CRCTFDC11XRQA"."SHIP_CONFIRM_JOB"',
            job_type => 'STORED_PROCEDURE',
            job_action => 'c_insert_ship_confirm_start(1000,FDC,1,0)',
            number_of_arguments => 0,
            start_date => TO_TIMESTAMP('09-MAR-16 02.41.43.451000000 PM', 'DD-MON-RR HH.MI.SS.FF AM'),
            repeat_interval => 'FREQ=DAILY;BYDAY=FRI,MON,SAT,SUN,THU,TUE,WED;BYMINUTE=5',
            end_date => NULL,
            job_class => 'DEFAULT_JOB_CLASS',
            enabled => false,
            auto_drop => true,
            comments => 'SHIP_CONFIRM_JOB IN EVERY 5 MINS',
            credential_name => NULL,
            destination_name => NULL);
END;

参考::

的存储过程
create or replace procedure c_insert_ship_confirm_start
(
    p_commit_frequency in number default 1000,
    p_whse             in varchar2,
    p_debug_flag       in number default 0,
    p_rc               out number
)

创建JOB Oracle抛出错误::

  

ORA-27452:%s是数据库对象的无效名称

1 个答案:

答案 0 :(得分:1)

stored_procedure作业类型不支持参数。 Reference: Oracle Docs

使用plsql_block

BEGIN
    sys.dbms_scheduler.create_job(job_name            => '"CRCTFDC11XRQA"."SHIP_CONFIRM_JOB"',
                                  job_type            => 'PLSQL_BLOCK',
                                  job_action          => 'begin c_insert_ship_confirm_start(1000,''FDC'',1,0); end;',
                                  number_of_arguments => 0,
                                  start_date          => to_timestamp('09-MAR-16 02.41.43.451000000 PM',
                                                                      'DD-MON-RR HH.MI.SS.FF AM'),
                                  repeat_interval     => 'FREQ=DAILY;BYDAY=FRI,MON,SAT,SUN,THU,TUE,WED;BYMINUTE=5',
                                  end_date            => NULL,
                                  job_class           => 'DEFAULT_JOB_CLASS',
                                  enabled             => FALSE,
                                  auto_drop           => TRUE,
                                  comments            => 'SHIP_CONFIRM_JOB IN EVERY 5 MINS',
                                  credential_name     => NULL,
                                  destination_name    => NULL);
END;
/