zoukankan      html  css  js  c++  java
  • Oracle创建JOB

    在需要创建job的用户下创建job

    begin
    dbms_scheduler.create_job (
    job_name => 'test',--job名
    job_type => 'STORED_PROCEDURE',--执行一个存储过程
    job_action => 'SP_TEST',--执行的存储过程名
    start_date => to_date('02-12-2011 12:00:00', 'dd-mm-yyyy hh24:mi:ss'),--首次执行时间2011/12/2日12点(sysdate代表当前时间)
    repeat_interval => 'FREQ=DAILY;BYTIME=120000',--每日12点执行
    enabled => true--启用任务
    );
    end;
    

    可以通过查询系统表查看该job信息select * from user_jobs;
    查看用户scheduler_job:select * from user_scheduler_jobs;
    删除scheduler_job:exec dbms_scheduler.drop_job(job_name => 'test');
    查看JOB运行日志:select log_id, log_date, status from user_scheduler_job_run_details where job_name='test';
    调度作业:exec dbms_scheduler.run_job('test');
    停止作业:exec dbms_scheduler.stop_job('test');

    首次执行时间start_date和时间间隔repeat_interval需要根据实际需求进行更新。

    start_date说明:指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE
    repeat_interval说明:
      基本结果:repeat_interval => 'FREQ=DAILY;Interval=5'
      FREQ(必须项):指定间隔的时间周期,可选参数有:YEARLY(年), MONTHLY(月), WEEKLY(周), DAILY(日), HOURLY(时), MINUTELY(分), SECONDLY(秒)
      ,INTERVAL:指定间隔的频繁,可指定的值的范围从1-99
      ,BYHOUR:指定一天中的小时。可指定的值的范围从[0,23]。16,17,18就表示每天下午的4、5、6点。
      ,BYMINUTE:指定分钟。[0,59]
      ,BYSECOND:指定秒。[0,59]
      ,BYYEARDAY:指定一年中的哪一天。[1,366] or [-366,-1]
      ,BYDAY:指定每周的哪天运行。MON|TUE|WED|THU|FRI|SAT|SUN
      ,BYMONTHDAY:指定每月中的哪一天。[1,31] or [-31,-1] -1 表示每月最后一天。
      ,BYMONTH:指定每年的月份。[1,12] or JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC
      ,BYDATE:指定日期。0310就表示3月10日。
      ,BYTIME用于设置时间点
    
    例子

    设置任务每5隔天运行:REPEAT_INTERVAL => 'FREQ=DAILY; INTERVAL=5';
    设置任务每月29日运行:REPEAT_INTERVAL => 'FREQ=MONTHLY; BYMONTHDAY=29';
    设置任务每隔24个小时运行:REPEAT_INTERVAL => 'FREQ=HOURLY; INTERVAL=24';

    所有博客均为自己学习的笔记。如有错误敬请理解。
  • 相关阅读:
    多态
    封装,继承,多态
    基本类型和引用类型的区别
    第七天 面向对象
    什么是Java线程池
    游戏内核架构
    放松
    静不下来心写代码
    速度和正确率
    理顺思路
  • 原文地址:https://www.cnblogs.com/tangtang-benben/p/14733952.html
Copyright © 2011-2022 走看看