【Oracle】定时作业

创建定时作业

declare job number;

begin
    dbms_job.submit(
        job,
        'test;', -- 需要执行的存储过程,注意一定要在存储过程后加';'
        sysdate, -- 开始执行时间
        'sysdate + 1' -- 执行频率,每天运行一次
    );
end;

查看定时作业

select * from user_jobs; -- 查看用户所有的定时作业
select * from dba_jobs_running; -- 查看定时作业运行状态
  • user_jobs字段说明
字段名字段类型解释
JOBnumber任务唯一标识
LOG_USERvarchar2(30)提交任务用户
PRIV_USERvarchar2(30)赋予任务权限的用户
SCHEMA_USERvarchar2(30)对任务做语法分析的用户模式
LAST_DATEdate最后一次成功执行时间
LAST_SECvarchar2(8)如HH24:MM:SS格式的last_date日期的小时,分钟和秒
THIS_DATEdate正在运行任务的开始时间
THIS_SECvarchar2(8)如HH24:MM:SS格式的last_date日期的小时,分钟和秒
NEXT_DATEdate下一次运行任务的时间
NEXT_SECvarchar2(8)如HH24:MM:SS格式的last_date日期的小时,分钟和秒
TOTAL_TIMEnumber该任务运行所需的总时间,单位:秒
BROKENvarchar2(1)标识参数,Y标识任务终端,以后不会运行
INTERVALvarchar2(200)计算下一次运行时间的表达式
FAILURESnumber任务运行连续没有成功的次数
WHATvarchar2(2000)执行任务的PL\SQL块
CURRENT_SESSION_LABELRAW MLSLABEL该任务的信任Oracle会话符
CLEARANCE_HIRAW MLSLABEL该任务可信任的Oracle最大间隙
CLEARANCE_LORAW MLSLABEL该任务可信任的Oracle最小间隙
NLS_ENVvarchar2(2000)任务运行的NLS会话设置
MISC_ENVRAW(32)任务运行的其他一些会话参数

运行定时作业

begin
    dbms_job.run(v_job); -- v_job是系统赋予的定时作业的序号,可以通过2来查看
end;

停止定时作业

begin
    dbms_job.broken(v_job, true, sysdate); -- sysdate为立刻停止,next_date某一时刻停止
end;

删除定时作业

begin
    dbms_job.remove(v_job);
end;

修改下一次运行时间

begin
    dbms_job.next_date(v_job, sysdate);
end;

修改执行时间

begin
    dbms_job.interval(v_job, 'sysdate')
end;

创建job时的常用间隔时间定义

  1. 每分钟执行
Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)
  1. 每天定时执行
-- 每天的凌晨2点执行
Interval => TRUNC(sysdate) + 1 +2 / (24)
  1. 每周定时执行
-- 每周一凌晨2点执行
Interval => TRUNC(next_day(sysdate,'星期一'))+2/24
  1. 每月定时执行
-- 每月1日凌晨2点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
  1. 每季度定时执行
-- 每季度的第一天凌晨2点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
  1. 每半年定时执行
-- 每年7月1日和1月1日凌晨2点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
  1. 每年定时执行
-- 每年1月1日凌晨2点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值