SQL> VARIABLE jobno number;
SQL> begin
2
3 DBMS_JOB.SUBMIT(:jobno,'Procdemo;',SYSDATE, 'trunc(SYSDATE + 30/(60*24*60))');
4 commit;
5 end;
6 /
begin
*
ERROR 位于第 1 行:
ORA-23420: 间隔必须以将来的一个时间作评估
ORA-06512: 在"SYS.DBMS_JOB", line 57
ORA-06512: 在"SYS.DBMS_JOB", line 134
ORA-06512: 在line 3
SQL> begin
2
3 DBMS_JOB.SUBMIT(:jobno,'Procdemo;',SYSDATE, 'trunc(SYSDATE + 30/(60*24*60))');
4 commit;
5 end;
6 /
begin
*
ERROR 位于第 1 行:
ORA-23420: 间隔必须以将来的一个时间作评估
ORA-06512: 在"SYS.DBMS_JOB", line 57
ORA-06512: 在"SYS.DBMS_JOB", line 134
ORA-06512: 在line 3
改成
'SYSDATE+30/(60*24*60)'
begin DBMS_JOB.SUBMIT(:jobno,'dele_test;',SYSDATE, 'SYSDATE+30/(60*24*60)');
commit;
end;
/显示:PL/SQL 过程已成功完成
改完了,但是我不知道这个的意思?那些部分是固定的,那些是我需要写的,这个写完在那里看到这个存储过程。我如何知道它确实在执行?
print jobno;
查看当前创建的job号
或者通过all_jobs来查看job的情况。DBMS_JOB.SUBMIT(:jobno,//job号
'your_procedure;',//要执行的过程
trunc(sysdate)+1/24,//下次执行时间
'trunc(sysdate)+1/24+1'//每次间隔时间
);这个说的已经很清楚了
主要是执行什么操作,每次间隔的时间。
SQL> print jobno; JOBNO
----------
41DBMS_JOB.SUBMIT(:jobno,//job号 我是不是把这里的 :jobno 用 41 代替?
你做得没有错误!
print jobno是输出刚刚提交的job号!