第一种在真正执行时,发现虽然在submit()中的第三个参数指定了第一次执行的时间,但是并没有生效,存储过程还是立即执行

CREATE OR REPLACE PROCEDURE DSPLJOB AS
execdate VARCHAR2(14);
BEGIN
begin
declare
job number;
BEGIN
execdate := '20151120000000';
dbms_job.submit(job, 'AUTOUPDATEGQPJ(10);', to_date(execdate,'yyyy-mm-dd hh24:mi:ss'), 'TRUNC(LAST_DAY(SYSDATE))+1+2/24'); --执行周期 -每月
commit;
DBMS_JOB.RUN(job);
end;
end;
END DSPLJOB;

 

第二种在真正执行时,在submit()中的第三个参数指定了第一次执行的时间,就可以生效,这种是使用匿名块的方式来声明存储过程

declare
job_id number;
begin
--sys.dbms_job.submit('USP_WCP',sysdate,'sysdate+1/1440');
sys.dbms_job.submit(job_id,
'AUTOUPDATEGQPJ(20);',
trunc(add_months(sysdate,0),'mm') + 17 + 14/24,
'trunc(add_months(sysdate,1),''mm'')+ 10 + 1/24');
end;

不知道这其中的区别在什么地方