创建DBMS_Job

本文介绍了如何在Oracle数据库中创建存储过程以删除7天前的数据,并展示了如何使用DBMS_JOB创建定时任务,详细说明了不同类型的定时执行间隔设置方法,包括每分钟、每天、每周、每月、每季度和每年执行的示例。
摘要由CSDN通过智能技术生成

1、首先创建一个存储过程,procedure

create or replace procedure 存储过程名 is --删除7天的数据
begin
  delete from t_table t
   where t.created_time < sysdate - 7;
end 存储过程名;

2、创建Dbms_job

  • 在对象浏览器中找到DBMS_Jobs,右键new弹出如下界面DBMS_Jobs

job:一般自动生成,不管;
what:存储过程,注意存储过程后面加;
next date 可以不管;
interval:
(1)每分钟执行
Interval => TRUNC(sysdate,‘mi’) + 1/ (24*60) –或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点执行
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

也可以直接执行如下程序

  • 程序执行如下
begin
  sys.dbms_job.submit(job => :job,
                       -- 注意名字后面必须有“;”
                      what => '存储过程名;',
                      -- 下一次注意格式 日月年
                      next_date => to_date('21-01-2024 16:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      -- 执行间隔 每天16点执行
                      interval => 'TRUNC(sysdate+ 1) +16/ (24)');
  commit;
end;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值