zoukankan      html  css  js  c++  java
  • 每天1点执行的oracle JOB样例

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2068

    每天1点执行的oracle JOB样例

    标签: oracle任务datejobssystemuser

    2010-04-21 12:55 6093人阅读 评论(0) 收藏 举报

     分类:

    Oracle(162) 

    DECLARE
    X NUMBER;
    BEGIN
    SYS.DBMS_JOB.SUBMIT
    ( job => X 
    ,what => 'syn_rpt_members_relation;'
    ,next_date => to_date('02-07-2008 01:00:00','dd/mm/yyyy hh24:mi:ss')
    ,interval => 'trunc(sysdate)+1+1/24'
    ,no_parse => FALSE
    );
    SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    COMMIT;
    END;
    /

    以上是明确指定每天的1点执行此job,如果指定是每天中午12点执行interval需要指定为 'trunc(sysdate)+1+12/24',如果仅仅指定interval为一天,这样当你手工用dbms_job.run(job)去运行一次时,job每天的执行时间是会改变的,如果你想job每天在固定时间执行,可以参考上面的例子.

     

    初始化相关参数job_queue_processes
    alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位

     

    job_queue_process 表示oracle能够并发的 job的数量,可以通过语句  

    show parameter job_queue_process;

    来查看oracle中job_queue_process的值。当job_queue_process值为0时表示全部停止oracle的job,可以通过语句

    ALTER SYSTEM SET job_queue_processes = 10;

    来调整启动oracle的job。

    相关视图:
    dba_jobs
    all_jobs
    user_jobs
    dba_jobs_running 包含正在运行job相关信息

     

    -------------------------

    提交job语法:

    begin
    sys.dbms_job.submit(job => :job,
    what => 'P_CLEAR_PACKBAL;',
    next_date => to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'),
    interval => 'sysdate+ 1/360');
    commit;
    end;
    /

     

    -------------------------
    创建JOB
    variable jobno number;
    begin
    dbms_job.submit(:jobno, 'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);
    commit;

     

    运行JOB
    SQL> begin
    dbms_job.run(:job1);
    end;
    /

     

    删除JOB
    SQL> begin
    dbms_job.remove(:job1);
    end;
    /

     

    DBA_JOBS
    ===========================================
    字段(列) 类型 描述
    JOB NUMBER 任务的唯一标示号
    LOG_USER VARCHAR2(30) 提交任务的用户
    PRIV_USER VARCHAR2(30) 赋予任务权限的用户
    SCHEMA_USER VARCHAR2(30) 对任务作语法分析的用户模式
    LAST_DATE DATE 最后一次成功运行任务的时间
    LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小时,分钟和秒
    THIS_DATE DATE 正在运行任务的开始时间,如果没有运行任务则为null
    THIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小时,分钟和秒
    NEXT_DATE DATE 下一次定时运行任务的时间
    NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小时,分钟和秒
    TOTAL_TIME NUMBER 该任务运行所需要的总时间,单位为秒
    BROKEN VARCHAR2(1) 标志参数,Y标示任务中断,以后不会运行
    INTERVAL VARCHAR2(200) 用于计算下一运行时间的表达式
    FAILURES NUMBER 任务运行连续没有成功的次数
    WHAT VARCHAR2(2000) 执行任务的PL/SQL块
    CURRENT_SESSION_LABEL RAW MLSLABEL 该任务的信任Oracle会话符
    CLEARANCE_HI RAW MLSLABEL 该任务可信任的Oracle最大间隙
    CLEARANCE_LO RAW MLSLABEL 该任务可信任的Oracle最小间隙
    NLS_ENV VARCHAR2(2000) 任务运行的NLS会话设置
    MISC_ENV RAW(32) 任务运行的其他一些会话参数

     

    --------------------------
    描述 INTERVAL参数值
    每天午夜12点 'TRUNC(SYSDATE + 1)'
    每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
    每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
    每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
    每个季度最后一天的晚上 11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
    每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

     

    --------------------------

    1:每分钟执行

    Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

    Interval => sysdate+1/1440

    2:每天定时执行

    例如:每天的凌晨1点执行

    Interval => TRUNC(sysdate) + 1 +1/ (24)

    3:每周定时执行

    例如:每周一凌晨1点执行

    Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

    4:每月定时执行

    例如:每月1日凌晨1点执行

    Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

    5:每季度定时执行

    例如每季度的第一天凌晨1点执行

    Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

    6:每半年定时执行

    例如:每年7月1日和1月1日凌晨1点

    Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

    7:每年定时执行

    例如:每年1月1日凌晨1点执行

    Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2068

  • 相关阅读:
    arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)
    arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
    arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
    arcgis api 3.x for js 入门开发系列五地图态势标绘(附源码下载)
    arcgis api 3.x for js 入门开发系列四地图查询(附源码下载)
    Java里面获取当前服务器的IP地址
    Flutter at Google I/O 2018
    Modbus RTU 协议使用汇总
    plsql 创建表空间、用户、赋予权限
    Oracle:ODP.NET Managed 小试牛刀
  • 原文地址:https://www.cnblogs.com/cnsend/p/15609639.html
Copyright © 2011-2022 走看看