job每小时执行一次 oracle_oracle job定时执行
oracle中准确控制job的下次运行时间(next date)
用过ORACLE的JOB的朋友也许都能够感觉到它的强大,和JAVA中的quartz有异曲同工之妙,可以少了很多的重复劳动;但是也会有许多问题,就是执行时间段和执行时间比较不容易确定。这其实都是我们还不熟悉JOB的interval造成的。
我碰到过几种用JOB的情况,从简到烦说三种:
1。最简单的,一个隔一段时间执行一次,没有其它限制。
interval: sysdate+2 每隔2天执行一次
sysdate+1/2 每隔12小时执行一次
sysdate+3/1440 每隔 3 分钟执行一次
2。简单的定时执行。
interval: trunc(sysdate+1)+1/3 每天的8点运行
3。要定时间段执行的。
interval: case when to_number(to_char(sysdate,'hh24'))>=8 and to_number(to_char(sysdate,'hh24'))<=20 then sysdate+15/1440 else trunc(sysdate+1)+1/3 end
每天的8点到20点之点,每隔15分钟运行一次,其余的每天的早上8点运行。
case when to_number(to_char(sysdate,'mm'))>=6 and to_number(to_char(sysdate,'mm'))<=10 then trunc(sysdate+30) else trunc(sysdate+1)+1/6 end
6-10月份,每隔30天的凌晨开始运行,其余月份每隔一天早上4点运行
4。最困难的,每次运行都要求在指定时间
如3第一个,要求不仅是在每天的8点到20点之点,每隔15分钟运行一次,而且都要在0分,15分,30分,45分运行。
困难在ORACLE的JOB机制,它的下次运行时间是在你的任务跑完以后才计算的。你的任务或多或少都会花些时间,这就导致下次运行时间不准。 比如,第一次运行是在 8:00:00,任务运行时间 10秒,那么下次的运行时间就是变成了 8:15:10(因为当时的sysdate+15/1440就是8:15:10),而不是希望的 8:15:00,这样多跑几次,就会造成很大的出入。
解决办法还是用job的interval,它不仅支持象 3 这样的sql语句,而且还支持函数,这样功能就强了。
写一个函数 fn_get_myjob_interval
create or replace function fn_get_myjob_interval(now date) return date is
Result date;
v_n_min number;
v_n_hour number;
v_n_all date;
begin
v_n_min:= to_number(to_char(now,'mi'));
v_n_hour:=to_number(to_char(now,'hh24'));
if v_n_hour>=20 then
result:=trunc(sysdate+1)+1/3;
else
v_n_all:=trunc(sysdate);
if v_n_min>=0 and v_n_min<15 then
result:=v_n_all+(v_n_hour*60+15)/1440;
elsif v_n_min>=15 and v_n_min<30 then
result:=v_n_all+(v_n_hour*60+30)/1440;
elsif v_n_min>=30 and v_n_min<45 then
result:=v_n_all+(v_n_hour*60+45)/1440;
else
result:=v_n_all+(v_n_hour+1)*60/1440;
end if;
end
job每小时执行一次 oracle_oracle job定时执行相关推荐
- ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件
什么是Cron和Crontab Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本.更详细的概念和使用 ...
- linux设备负责执行计划任务,linux下定时执行计划任务
查看/etc/crontab文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 0 ...
- php网站定时执行代码,如何使PHP定时执行任务(附代码)
这篇文章主要介绍了如何使PHP定时执行任务,有一定的参考价值,感兴趣的朋友可以看看,希望对你有所帮助! 使用PHP定时执行某些任务的话, 可以有以下两个方法: 1. linux下crontab, wi ...
- Linux执行crontab计划任务,定时执行脚本或命令
一.cron的作用 按照设置的时间间隔为用户反复执行某一项固定的系统任务 二.cron的操作命令 查看:crontab -l [-u 用户名] 编辑:crontab -e [-u 用户名] 清除: c ...
- Linux 定时执行shell 脚本
2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...
- 使用wxLog实现循环保存日志的解决方案(附详细代码)—— 定时执行专家
目录 ◆ 方案背景 ◆ 实现效果 ◆ wxLog实现日志功能详解 ◆ 定时执行专家 - 简介&最新版下载链接 ◆ 定时执行专家 - 关键字/Keyword ◆ 方案背景 不少用户提到<定 ...
- 在Linux服务器上执行python定时任务(APScheduler定时框架)
目标:在Linux服务器上,定时运行python脚本. 这个小玩意儿适用于让服务器做一些自动的东西,比如定时查库发送报表.定时让爬虫爬数据.定时提醒等等. 那有同学要问了:为啥不用自己电脑直接运行?- ...
- Ubuntu 定时执行脚本
一.关于crontab cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业.在Ubuntu中,cron是被默认安装并启动的. 二.例子 直接上例子,来看看怎么用. 需求:定时每天 ...
- windows设置任务计划定时执行php程序,两种方法
windows设置任务计划定时执行php程序,两种方法 1.定时执行bat文件 2.定时执行php文件 1.定时执行bat文件 新建一个php文件 :在php文件写入你要执行的程序: <?php ...
最新文章
- java.io.IOException: Attempted read from closed stream. 异常,解决
- 数据挖掘-数据清理过程
- centOS下为PHP安装Xdebug
- 【转】小菜硬件杂谈 细数主板上曾出现过的插槽
- LINUX中常用操作命令
- 牛客网_PAT乙级_1013组个最小数 (20)
- 博为峰Java技术文章 ——JavaSE Swing JPanel III
- UFLDL教程:Exercise:Convolution and Pooling
- mysql 占用的解决_解决 MySQL 突然占用全部内存的问题
- mysql内连接和外连接的区别_数据库左连接、右连接、内连接、全连接区别
- HDU2094 产生冠军【set】
- 计算机新安装系统后桌面上有什么图标,手把手教你全新安装完win10系统后如何设置显示桌面图标-系统操作与应用
-亦是美网络...
- 安卓-LBS地图显示
- 由save is not vaild without active transcation引发的问题
- 【学术相关】有什么事情是你读博以后才知道的?
- 【open stack】openstack从入门到放弃
- 2018年电子设计大赛主要元器件、模块资料汇总
- Redux 替代品 Zustand
- Everything不显示.lnk文件
- 计算机操作员高级图形图像处理photoshopcs2试题解答,图形图像处理(Photoshop平台)Photoshop CS2试题汇编(图像制作员...