Declare
v_SmtpJob Number;
Begin
dbms_job.submit(v_SmtpJob,
'CheckSMTP;',
Sysdate,
'sysdate+5/1440');
dbms_job.run(v_SmtpJob);
End;
v_SmtpJob Number;
Begin
dbms_job.submit(v_SmtpJob,
'CheckSMTP;',
Sysdate,
'sysdate+5/1440');
dbms_job.run(v_SmtpJob);
End;
我想用一个固定的过程, 到时候直接执行这个过程就可以执行job了
你的这个语句
dbms_job.submit(v_SmtpJob,
'CheckSMTP;',
Sysdate,
'sysdate+5/1440');
不是提交了一个job吗?剩下的工作交给oracle自动做好了。
你刚才用的是一个临时过程来执行job
因为我们这边的dba什么都不懂........
job的提交和匿名块或者过程或者函数是无关的。
v_SmtpJob Number;
Begin
dbms_job.submit(v_SmtpJob,
'CheckSMTP;',
Sysdate,
'sysdate+5/1440');
dbms_job.run(v_SmtpJob);
End;我试过了,没问题
begindeclareendexceptionexit
forgotoifloopmodnullpragmaraisereturnselectupdatewhile
<an identifier><a double-quoted delimited-identifier>
<a bind variable><<closecurrentdeletefetchlockinsertopen
rollbacksavepointsetsqlexecutecommitforall
<a single-quoted SQL string>
Line: 8
Text: dbms_job.submit(v_SmtpJob,'CheckSMTP',sysdate,'sysdate+5/1440');
另外,过程内少了一个分号;
create procedure StartJOB IS
v_SmtpJob number;
BEGIN
dbms_job.submit(v_SmtpJob,'CheckSMTP;',sysdate,'sysdate+5/1440');
commit;
END StartJOB;
另外,过程内少了一个分号;
create procedure StartJOB IS
v_SmtpJob number;
BEGIN
dbms_job.submit(v_SmtpJob,'CheckSMTP;',sysdate,'sysdate+5/1440');
commit;
END StartJOB;