SQL> create or replace procedure pro as
  2  begin
  3   insert into e values('111',111);
  4  end;
  5  /过程已创建。SQL> VARIABLE  jobMonth  number;  
SQL> begin  
  2      DBMS_JOB.SUBMIT(:jobMonth,'pro;',sysdate,'last_day(trunc(sysdate))+1'); 
  3      commit;  
  4  end;
  5  
  6  /PL/SQL 过程已成功完成。SQL> select job,next_date from all_jobs;      JOB NEXT_DATE
--------- -------------------
        3 2003-02-01 00:00:00

解决方案 »

  1.   

    to: bzszp(SongZip)
    为什么我这里会有异常的情况出现?
    你可以试试先remove,然后将此存储过程的时间缩短为2分钟,
    重新生成此任务时间为'last_day(trunc(sysdate))+1'时,
    但是查看时我这边就有问题,因为我曾经反复修改了任务调用存储过程的细节
    所以有以上重复的操作,麻烦你了,谢谢!!!
      

  2.   

    select job,next_date from all_jobs;       JOB NEXT_DATE
    ---------- -----------
            49 2003-1-21 15:48:20
    SQL> begin
      2  dbms_job.remove(49);
      3  end;
      4  /
    PL/SQL procedure successfully completedVARIABLE  jobMonth  number;
    SQL> begin
      2      DBMS_JOB.SUBMIT(:jobMonth,'XP_Exchange;',sysdate,'last_day(trunc(sysdate))+1');
      3      commit;
      4  end;
      5  /PL/SQL procedure successfully completed
    jobMonth
    ---------
    50select job,next_date from all_jobs;       JOB NEXT_DATE
    ---------- -----------
            50 2003-1-21 15:23:18
      

  3.   

    SQL>  exec dbms_job.next_date(3,sysdate+2/(24*60));PL/SQL 过程已成功完成。SQL> select job,next_date from all_jobs;      JOB NEXT_DATE
    --------- -------------------
            3 2003-01-21 15:24:35SQL> exec dbms_job.next_date(3,last_day(trunc(sysdate))+1);PL/SQL 过程已成功完成。SQL> select job,next_date from all_jobs;      JOB NEXT_DATE
    --------- -------------------
            3 2003-02-01 00:00:00SQL> 
    没什么问题啊。
      

  4.   

    是不是我只是将任务remove掉,而不是去更新任务的下次执行时间呀
      

  5.   

    你只是改next_date参数的话不用重新创建
    用dbms_job.next_date()函数修改就可以了
    exec dbms_job.next_date(3,sysdate+2/(24*60));
      

  6.   

    谢谢,是不是remove掉任务,但是建立同样名称的任务时,下次的执行时间是前一次的,而不是当前的,是这样的么?非常感谢...给分!!!
      

  7.   

    可以使用的函数:
    删除job:dbms_job.remove(jobno);
    修改要执行的操作:job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);