【Oracle笔记】详解Sched.Jobs定时任务

一、CREATE_JOB过程

BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB
    (
       job_name        => 'MYDB.JOB_READ_FILES'
      ,start_date      => TO_TIMESTAMP_TZ('2018/01/01 01:00:00.000000 +08:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
      ,repeat_interval => 'freq=HOURLY;INTERVAL=1'
      ,end_date        => NULL
      ,job_class       => 'DEFAULT_JOB_CLASS'
      ,job_type        => 'PLSQL_BLOCK'
      ,job_action      => 'begin FILES_DEAL.RUN; end;'
      ,comments        => NULL
    );
    
  SYS.DBMS_SCHEDULER.ENABLE
    (name                  => 'MYDB.JOB_READ_FILES');
END;
/
名称释义
JOB_NAME提供指定作业名的方法。
JOB_TYPE指定你正创建的作业类型。作业可包括PL/SQL、存储过程、可执行文件或Java程序。
JOB_ACTION指定作业将执行的精准的过程、命令或脚本。
START_DATE和END_DATE指定新作业启动和结束的日期。
REPEAT_INTERVAL指定Scheduler执行一个作业的频率。
COMMENTS允许包括关于被调度作业的任何注释。
ENABLED指定在创建作业时该作业是否启动或禁用。

二、设置重复时间间隔

Frequency:日历表达式,由FREQ关键字标识,取值为YEARLY、MONTHLY、WEEKLY、DAILY、HOURLY、MINUTELY和SECONDLY。
Repeat interval:时间间隔,由INTERVAL关键字标识,执行频率。
Specifiers:提供关于一个作业何时应该运行的详细信息,取值为BYMONTH、BYWEEKND、BYYEARDAY、BYMONTHDAY、BYDAY、BYHOUR、BYMINUTE和BYSECOND。

# 每3天执行一次作业:
FREQ=DAILY;INTERVAL=3
# 每周一执行一次作业:
FREQ=WEEKLY;BYDAY=MON
# 每隔一周的周五执行一次作业:
FREQ=WEEKLY;INTERVAL=2;BYDAY=FRI

三、实际遇到问题

1、时区问题(+08:00)
2、回车换行问题(WINDOWS和UNIX不同)
3、作业执行切换文件问题(两路服务器都需挂载共享文件)

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值