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
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
为什么我这里会有异常的情况出现?
你可以试试先remove,然后将此存储过程的时间缩短为2分钟,
重新生成此任务时间为'last_day(trunc(sysdate))+1'时,
但是查看时我这边就有问题,因为我曾经反复修改了任务调用存储过程的细节
所以有以上重复的操作,麻烦你了,谢谢!!!
---------- -----------
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 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>
没什么问题啊。
用dbms_job.next_date()函数修改就可以了
exec dbms_job.next_date(3,sysdate+2/(24*60));
删除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);