如:DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X 
   ,what      => 'DBP_ClearMessDate;'
   ,next_date => to_date('23-08-2010 03:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'SYSDATE + 1'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/想把JOB时间改成4点

解决方案 »

  1.   

    1.先查询要修改job的jobnum
    select job,what from user_jobs where what='DBP_ClearMessDate';
    2.修改job的执行时间
    exec sys.dbms_job.next_date(job, to_date('23-08-2010 04:00:00','dd/mm/yyyy hh24:mi:ss')); -- 改变下次执行时间.
      

  2.   

    1、找到你原来的JOBID,你可以查询select * from dba_jobs来查看;
    2、假设你原的JOBID为100,你可以使用dbms_job.change来修改job的参数,而JOBID不变。
    --每天4:00运行
    DECLARE
      X NUMBER :=100;
    BEGIN
      SYS.DBMS_JOB.CHANGE(job       => x,
                          what      => 'DBP_ClearMessDate;',
                          next_date => TRUNC(SYSDATE+1) + 4 / 24,
                          INTERVAL  => 'TRUNC(SYSDATE+1)+4/24');
      SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
      COMMIT;
    END;
    /
      

  3.   

    用toad或pl/sql登上去都能看到jobnum,在里面直接改就可以了