日期:2014-05-16  浏览次数:20391 次

oracle 计划任务 ---- job
创建测试表 
  SQL>   create   table   a(a   date); 
  
  表已创建。 
  
  创建一个自定义过程 
  SQL>   create   or   replace   procedure   test   as 
      2     begin 
      3     insert   into   a   values(sysdate); 
      4     end; 
      5     / 
  
  过程已创建。 
  
  创建JOB 
  SQL>   variable   job1   number; 
  SQL>   
  SQL>   begin 
      2     dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次 
      3     end; 
      4     / 
  
  PL/SQL   过程已成功完成。 
  
  运行JOB 
  SQL>   begin 
      2     dbms_job.run(:job1); 
      3     end; 
      4     / 
  
  PL/SQL   过程已成功完成。 
  
  SQL>   select   to_char(a,'yyyy/mm/dd   hh24:mi:ss')   时间   from   a; 
  
  时间 
  ------------------- 
  2001/01/07   23:51:21 
  2001/01/07   23:52:22 
  2001/01/07   23:53:24 
  
  删除JOB 
  SQL>   begin 
      2     dbms_job.remove(:job1); 
      3     end; 
      4     / 
  
  PL/SQL   过程已成功完成。 
  
  
  select   job,to_char(next_date,'yyyy-mm-dd   hh24:mi:ss')   from   all_jobs; 
  
  
  ----------job的使用: 
  
  DBMS_JOB.SUBMIT(:jobno,//job号 
                                  'your_procedure;',//要执行的过程 
                                  trunc(sysdate)+1/24,//下次执行时间 
                                  'trunc(sysdate)+1/24+1'//每次间隔时间 
                                ); 
  删除job:dbms_job.remove(jobno); 
  修改要执行的操作:job:dbms_job.what(jobno,what); 
  修改下次执行时间:dbms_job.next_date(job,next_date); 
  修改间隔时间:dbms_job.interval(job,interval);&nbs