首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle 计划任务 - job

2012-09-10 
oracle 计划任务 ---- job创建测试表SQLcreatetablea(adate)表已创建。创建一个自定义过程SQLcreateorre

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); 
  停止job:dbms.broken(job,broken,nextdate); 
  启动job:dbms_job.run(jobno); 
  例子: 
  VARIABLE   jobno   number; 
  begin 
              DBMS_JOB.SUBMIT(:jobno,   
                              'Procdemo;',//Procdemo为过程名称   
                                SYSDATE,   'SYSDATE   +   1/720'); 
                    commit; 
  end; 
  
  -----修改job_queue_processes的值(保证其不为0否则JOB不自动运行) 
  可通过select   *   from   v$parameter;查看其值; 
  方法1,startup   pfile='C:\oracle\ora90\database\initorcl.ora'; 
  需要修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效 
  方法2,alter   system   set   job_queue_processes=10   
  不需要重新启动数据库就能生效,系统自动修改init.ora文件

热点排行