如果需要创建带参数的job,如何创建呢。

我们直接将参数声明,并赋值,然后传给job调用的存储过程即可。

例如,存储过程名为Pro_Test_JOB,参数共有一个,是VARCHAR2类型。

创建JOB如下:

declare
  job number;
  v_count number;
begin 
    SELECT COUNT(*)
    INTO v_count
    FROM user_jobs uj
    WHERE  upper(uj.what) = 
    UPPER('declare para_data VARCHAR2(100):=''参数'';begin  Pro_Test_JOB(para_data); end;');
    
    if v_count = 0 then
      sys.dbms_job.submit(job => job, 
                      what => 
                      'declare para_data VARCHAR2(100):=''参数'';begin  Pro_Test_JOB(para_data); end;', 
                      next_date =>sysdate , 
                      interval => 'sysdate+2/24');
    dbms_job.run(job);
    commit;
  end if;
end;