平平庸庸

job sql(给自己看)

上一篇 / 下一篇  2009-11-30 18:06:36 / 个人分类:随便写写

variable job1 number;
begin
        sys.dbms_job.submit(job=> :job,
                            what => 'prc_g_test;',
                             next_date => to_date('22-10-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
                             interval => 'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次
       commit;
      end;
  /
5、查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from dba_jobs

6、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
  2  dbms_job.run(:job);
  3  end;
  4  /


7、删除JOB
SQL> begin
  2  dbms_job.remove(:job);--:job可以用dba_jobs.job的值代替如:1198
  3  end;
  4  /


说明:在sqlplus命令行直接定义变量要variable!!!!

查看任务:select * from user_jobs;select * from all_jobs;

查看正在运行的任务(不推荐使用,速度慢):select * from dba_jobs_running;

另外值得一提的是,在安装oracle配置的时候,有这么一个参数:

job_queue_processes=4  (默认4)

这个参数是定义当前最多可同时运行几个job,它的最大值能设置为36。

除了submit参数外,其余的几个参数有:

        dbms_job.run(v_job);         //运行job

        dbms_job.broken(v_job,true,next_date);        //停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。

        dbms_job.remove(v_job);        //删除某个job

        dbms_job.what(v_job,'sp_fact_charge_code;');        //修改某个job名

        dbms_job.next_date(v_job,sysdate);        修改下一次运行时间

例题,设定每天2:10:10运行

trunc(sysdate)+2/24+10/24/60+10/24/60/60        //运行时间

trunc(sysdate)+1+2/24+10/24/60+10/24/60/60        //间隔运行时间

例题,设定每月2号的2:10:10运行

trunc(sysdate,'mm')+1+2/24+10/24/60+10/24/60/60        //运行时间

trunc(add_mouths(sysdate,1),'mm')+1+2/24+10/24/60+10/24/60/60           //间隔运行时间

例题,设定每个季度……

trunce(sysdate,'Q')+1+2/24+10/24/60+10/24/60/60         //运行时间

trunce(add_mouths(sysdate,3),'Q'))+1+2/24+10/24/60+10/24/60/60         //间隔运行时间

另外年为'Y;

例题,设定每周一……

next_day(sysdate'星期一')

停止一个job;

SQL>  select  job,broken  from  user_jobs;  
   
  JOB  B  
  ---  -  
  110  N  
   
  已选择  1  行。  
   
  SQL>  execute  dbms_job.broken(110,true);  
   
  PL/SQL  过程已成功完成。  
   
  SQL>  select  job,broken  from  user_jobs;  
   
  JOB  B  
  ---  -  
  110  Y  
   
  已选择  1  行。


TAG:

 

评分:0

我来说两句

Open Toolbar