---只有一个存储过程可以这么调,在命令中执行
variable job number;
begin
  sys.dbms_job.submit(job => :job,
                      what => test1;',       ---这里
                      next_date => sysdate,
                      interval => 'trunc(sysdate+1)+3/24');
  commit;
end;
/--两个存储过程,如下,好像就有问题,????????????
variable job number;
begin
  sys.dbms_job.submit(job => :job,
                      what => test1;test2;',   ---增加test2
                      next_date => sysdate,
                      interval => 'trunc(sysdate+1)+3/24');
  commit;
end;
/

解决方案 »

  1.   

    两个方法, 一个是写两个job一个是新建一个存储过程,封装这两个存储过程
      

  2.   

    一个job 只能调用一个存储过程
      

  3.   

    SQL> create or replace procedure test1 is
      2  begin
      3    NULL;
      4  end;
      5  /过程已创建。SQL> create or replace procedure test2 is
      2  begin
      3    NULL;
      4  end;
      5  /过程已创建。SQL> variable job number
    SQL> begin
      2    sys.dbms_job.submit(job => :job,
      3                        what => 'test1;test2;',  ---增加test2
      4                        next_date => sysdate,
      5                        interval => 'trunc(sysdate+1)+3/24');
      6    commit;
      7  end;
      8  /PL/SQL 过程已成功完成。SQL>
      

  4.   

    用pl/sql dev 创建过程和job 很好使
      

  5.   

    定时删除三分钟前的数据###   1.创建存储过程
    SQL> create or replace procedure pro_delete_a as
    2  begin
    3  delete from a t where t.a < (sysdate-3/1440);  ###一天1440分钟。即一分钟是 1/1440
    4  end;
    5  /
    Procedure created###  2创建job
    SQL> variable job_pro_delete_a number;
    SQL> begin
    2  dbms_job.submit(:job_pro_delete_a,'pro_delete_a;',sysdate,'sysdate+3/1440');
    3  end;
    4  /PL/SQL procedure successfully completed
    job_pro_delete_a
    ---------
    127###  3.调用job
    SQL> begin
    2  dbms_job.run(:job_pro_delete_a);
    3  end;
    4  /