Declare
  v_SmtpJob Number;
Begin
  dbms_job.submit(v_SmtpJob,
                  'CheckSMTP;',
                  Sysdate,
                  'sysdate+5/1440');
  dbms_job.run(v_SmtpJob);
End;

解决方案 »

  1.   

    我不想用一个临时的过程, 
    我想用一个固定的过程, 到时候直接执行这个过程就可以执行job了
      

  2.   

    job的执行可以由oracle自动完成
    你的这个语句
    dbms_job.submit(v_SmtpJob,
                      'CheckSMTP;',
                      Sysdate,
                      'sysdate+5/1440');
    不是提交了一个job吗?剩下的工作交给oracle自动做好了。
      

  3.   

    是的, 但是我是打算在一个永久的过程中来实现这个job
    你刚才用的是一个临时过程来执行job
    因为我们这边的dba什么都不懂........
      

  4.   

    唉,效果是一样的啊!
    job的提交和匿名块或者过程或者函数是无关的。
      

  5.   

    create or replace procedure SubmitJOB as
      v_SmtpJob Number;
    Begin
      dbms_job.submit(v_SmtpJob,
                      'CheckSMTP;',
                      Sysdate,
                      'sysdate+5/1440');
      dbms_job.run(v_SmtpJob);
    End;我试过了,没问题
      

  6.   

    Compilation errors for PACKAGE BODY ADMIN.PSECURITYError: PLS-00103: 出现符号 ""在需要下列之一时:
           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');  
      

  7.   

    为何要在过程中执行job,job执行一次后就不用管它的.
    另外,过程内少了一个分号;
    create procedure StartJOB IS
         v_SmtpJob     number;
    BEGIN
         dbms_job.submit(v_SmtpJob,'CheckSMTP;',sysdate,'sysdate+5/1440');  
         commit;
    END StartJOB;
      

  8.   

    为何要在过程中执行job,job执行一次后就不用管它的.
    另外,过程内少了一个分号;
    create procedure StartJOB IS
         v_SmtpJob     number;
    BEGIN
         dbms_job.submit(v_SmtpJob,'CheckSMTP;',sysdate,'sysdate+5/1440');  
         commit;
    END StartJOB;