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

  • 相关阅读:
    注册时按钮上的时间倒计时
    不能修改/删除/添加数据.(NTFS问题)
    站在2009年的门槛上
    超强PHP分页类(转自PHPCHINA)
    System.Web.Caching.Cache类 缓存 各种缓存依赖
    Wxpython快速构建GUI窗口程序
    Python2 和 Python3 有哪些差别
    12306数据库遭泄露,请尽快修改密码
    王欣复出后的第一款产品
    在命令行打开安卓UI界面
  • 原文地址:https://www.cnblogs.com/manastudent/p/10190924.html
Copyright © 2011-2022 走看看