zoukankan      html  css  js  c++  java
  • Oracle dbms_job

    Oracle dbms_job 可以在指定的时间点或每天的某个时间点自行执行任务。可以在数据库级别上实现定时任务,用来定时调用存储过程是一个不错的解决方案。

    语法

    使用dbms_job.submit方法过程,这个过程有五个参数:job、what、next_date、interval与no_parse。

    dbms_job.submit(
    job OUT binary_ineger,
    What IN varchar2,
    next_date IN date,
    interval IN varchar2,
    no_parse IN booean:=FALSE)

    job参数是输出参数,由submit()过程返回的binary_ineger,这个值用来唯一标识一个工作。一般定义一个变量接收,可以去user_jobs视图查询job值。
    what参数是将被执行的PL/SQL代码块,存储过程名称等。
    next_date参数指识何时将运行这个工作。
    interval参数何时这个工作将被重执行。
    no_parse参数指示此工作在提交时或执行时是否应进行语法分析——true,默认值false。指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。

    创建一个存储过程

     create or replace procedure p_test_job  is
     begin
     insert into aaaa_batchinfo
      values
        (AAAA_BATCHINFO_SEQ.nextval,
         1,
         sysdate(),
         1,
         sysdate());
    end;
    
    --需要调用一下,使得存储过程生效
    call p_test_job();
    

    创建 dbms_job

    --新建 job  其中第二个参数;号必须带上
    declare job_test number;   
    begin
        -- sysdate+1  每天凌晨执行
        dbms_job.submit(job_test,'p_test_job;',sysdate,'sysdate+1');
        commit;
    end; 
    

    关于 dbms_job 的一些常用命令

    --查看所有的 job
    select job,log_user,to_char(last_date,'yyyy-mm-dd hh24:mi:ss') last_date,
    to_char(next_date,'yyyy-mm-dd hh24:mi:ss') next_date,interval,what
    from user_jobs
    
    --如果 last_date 没有值
    --需要手动执行一次,这样才能正确的使 job 定时执行
    execute dbms_job.run(25);
    
    --删除 job
    execute dbms_job.remove(25);
    
    --job_queue_processes参数,当设定该值为0的时候则任意方式创建的job都不会运行。
    show parameters job;
    alter system set job_queue_processes = 6;
    

    关于执行时间的一些参数

    执行时间 INTERVAL参数值
    每天凌晨0点执行 TRUNC(SYSDATE + 1)
    每天早上8点执行 TRUNC(SYSDATE + 1) +(860)/ (2460)
    每星期日中午12点 NEXT_DAY(TRUNC(SYSDATE ),''SUNDAY'' ) + 12/24
    每个月第一天的午夜12点 TRUNC(LAST_DAY(SYSDATE ) + 1)

    本文由个人 hexo 博客 co2fe.com 迁移
    date: 2017-10-15 12:33:31

  • 相关阅读:
    智慧城市顶层设计策略方案(PPT)
    ant build.xml 解释!
    Excel poi API基础教程!
    操纵Excel文件的 ExcelUtil 类 !
    在selenium测试中使用XPATH功能函数starts-with、contains、descendant、ancestor、text()定位网页元素
    [ Selenium2 从零开始 by Bruce from http://seleniumcn.cn ] 1-8 视频集锦
    selenium 概念及练习 !
    selenium Object Page 设计模式理解及实现!
    使用TestNG 和 CSV文件进行数据驱动
    如何让评审人爱上我
  • 原文地址:https://www.cnblogs.com/manastudent/p/10190924.html
Copyright © 2011-2022 走看看