ORACLE 定时执行存储过程
推荐用dbms_scheduler方式更好 (2012-11-19注)
- /*
- 查询:
- select job,broken,what,interval,t.* from user_jobs t;
- job job的唯一标识,自动生成的
- broken 是否处于运行状态,N;运行;Y:停止
- what 存储过程名称
- next_date 初次执行时间
- interval 执行周期
- 删除:
- begin dbms_job.remove(jobno); end;
- 根据what的内容确定其对应的job,并如此执行删除
- 执行时间例子:
- 描述 INTERVAL参数值
- 每天午夜12点 ''TRUNC(SYSDATE + 1)''
- 每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
- 每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
- 每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
- 每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
- 每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
- 每3秒钟执行一次 'sysdate+3/(24*60*60)'
- 每2分钟执行一次 'sysdate+2/(24*60)'
- 1:每分钟执行
- Interval => TRUNC(sysdate,'mi') + 1/ (24*60) --每分钟执行
- interval => 'sysdate+1/(24*60)' --每分钟执行
- interval => 'sysdate+1' --每天
- interval => 'sysdate+1/24' --每小时
- interval => 'sysdate+2/24*60' --每2分钟
- interval => 'sysdate+30/24*60*60' --每30秒
- 2:每天定时执行
- Interval => TRUNC(sysdate+1) --每天凌晨0点执行
- Interval => TRUNC(sysdate+1)+1/24 --每天凌晨1点执行
- Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60) --每天早上8点30分执行
- 3:每周定时执行
- Interval => TRUNC(next_day(sysdate,'星期一'))+1/24 --每周一凌晨1点执行
- Interval => TRUNC(next_day(sysdate,1))+2/24 --每周一凌晨2点执行
- 4:每月定时执行
- Interval =>TTRUNC(LAST_DAY(SYSDATE)+1) --每月1日凌晨0点执行
- Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 --每月1日凌晨1点执行
- 5:每季度定时执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') --每季度的第一天凌晨0点执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') + 1/24 --每季度的第一天凌晨1点执行
- Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24 --每季度的最后一天的晚上11点执行
- 6:每半年定时执行
- Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 --每年7月1日和1月1日凌晨1点
- 7:每年定时执行
- Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24 --每年1月1日凌晨1点执行
- 相关方法:
- 修改要执行的操作:dbms_job.what(jobno,'sp_fact_charge_code;'); --修改某个job名
- 修改下次执行时间:dbms_job.next_date(job,next_date);
- 修改间隔时间:dbms_job.interval(job,interval);
- 停止job:dbms.broken(job,broken,nextdate);
- dbms_job.broken(v_job,true,next_date); --停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
- */
- create or replace procedure proc_auto_exec_job as
- begin
- declare
- job number;
- BEGIN
- DBMS_JOB.SUBMIT(
- JOB => job, /*自动生成JOB_ID*/
- WHAT => 'proc_test_job;', /*需要执行的过程或SQL语句*/
- /*NEXT_DATE => sysdate, */ /*初次执行时间,立刻执行*/
- /*INTERVAL => 'sysdate+3/(24*60*60)' */ /*执行周期 -每3秒钟*/
- NEXT_DATE => TRUNC(SYSDATE+1)+(0*60+30)/(24*60), /*初次执行时间,12点30分*/
- INTERVAL => 'TRUNC(SYSDATE+1)+(0*60+30)/(24*60)' /*每天12点30分*/
- );
- COMMIT;
- /*dbms_job.submit(job, 'proc_test_job;', sysdate, 'trunc(sysdate,''mi'')+1/(24*60)'); /*执行周期 -每1分钟*/
- commit;*/
- DBMS_JOB.RUN(job);
- end;
- end proc_auto_exec_job;
- begin proc_auto_exec_job; end;
ref:http://blog.csdn.net/thinkscape/article/details/7411012
ORACLE 定时执行存储过程相关推荐
- Oracle定时执行存储过程
首先查看 SQL> show parameter job NAME TYPE VALUE ------------- ...
- oracle job如何执行存储过程,oracle定时执行存储过程的job
本文转载:http://blog.csdn.net/flm_0722/archive/2009/10/08/4643566.aspx 一.设置初始化参数 job_queue_processes sql ...
- Oracle的job(定时执行存储过程)
我们在项目开发中,常常会有一些复杂的业务逻辑.使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执 ...
- Oracle 定时执行计划任务
Oracle 定时执行计划任务 Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER 来替代先前的DBMS_JOB,在功能方面,它比DBM ...
- Oracle 定时任务执行存储过程【建议收藏】
首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一条数据. 实现方案: 1.通过 oracle 中 dbms_job 完成存储过程的定时调用 2.在存储过程中完成相应的 ...
- mysql定时执行存储过程
mysql定时执行存储过程 查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件 ...
- SQLserver存储过程简单写法与设置定时执行存储过程方法
最近工作中需要写SQLserver的存储过程,第一次使用,简单记录下,以防遗忘. 在SQLserver可视化工具中编写,我的工具如下图: 首先点击你的数据库,找到可编程性,在可编程性里面右击存储过程- ...
- PLSQL创建Oracle定时任务,定时执行存储过程
1.创建定时向表中插入数据的存储过程,名为testJob. CREATE OR REPLACE PROCEDURE "testJob" AS BEGINEXECUTE IMMEDI ...
- Oracle定时任务执行存储过程备份日志记录表
写在前面 需求 1.备份系统日志表T_S_LOG, 按照操作时间字段OPERATETIME, 将每天的日志增量备份到另一张表. 思路 1.创建一张数据结构完全相同的表T_S_LOG_BAK作为备份表 ...
最新文章
- Windows下程序启动时出现0xc000007b错误的解决方案
- 计组之中央处理器:1、CPU的功能和基本结构
- processing solution item 在加载时一直出现
- Vue使用Mint-ui的Popup, Picker组件报错问题
- 深度学习斯坦福cs231n 课程笔记
- 信息与计算机科学二级学科,《信息计算与智能系统》二级学科 硕士研究生培养方案...
- 多线程下载辅助类实现
- 08cms php5.4,08CMS - 内容管理CMS - PHP开源项目 - 开源吧
- 一款ModbusRTU/TCP485串口协议调试软件工具绿色版免安装
- css背景透明度影响字体--实现背景透明字体不透明
- 【推荐】阿里云主机accesskey利用工具
- c++直角空心三角形_八年级数学三角形专题知识点汇总,掌握了考满分!
- HTML html5基础详细笔记 第一个模块
- 科大奥瑞物理实验——光纤传感器实验
- 基于linux下的shell脚本的编写
- sql语句多表查询实例
- 笔记整理--Linux守护进程
- 安卓开发--运行你的APP
- POSIX、libc、glibc概念的理解
- php kafka使用
热门文章
- OpenGL Multi-Indirect Draw小行星的实例
- OpenGL 点光源的多遍阴影贴图
- c++Interpolation search插值搜索的实现算法之一(附完整源码)
- QT的QRubberBand类的使用
- 经典C语言程序100例之八四
- vnc远程登录linux黑屏,linux VNC安装好后登录黑屏 鼠标显示黑色大叉的解决方法
- intraweb php,使用 IntraWeb (40) - 自定义 Session 数据
- linux 如何让.开头的文件不隐藏_如何使用 BusyBox 制作Linux最小文件系统
- can 总线通信协议开发_Simulink应用层开发—CAN总线信号处理
- 「Anaconda」取消终端命令行自动加载的conda(base)虚拟环境