推荐用dbms_scheduler方式更好 (2012-11-19注)

[sql] view plaincopy
  1. /*
  2. 查询:
  3. select job,broken,what,interval,t.* from user_jobs t;
  4. job job的唯一标识,自动生成的
  5. broken 是否处于运行状态,N;运行;Y:停止
  6. what 存储过程名称
  7. next_date 初次执行时间
  8. interval 执行周期
  9. 删除:
  10. begin dbms_job.remove(jobno); end;
  11. 根据what的内容确定其对应的job,并如此执行删除
  12. 执行时间例子:
  13. 描述                    INTERVAL参数值
  14. 每天午夜12点            ''TRUNC(SYSDATE + 1)''
  15. 每天早上8点30分         ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
  16. 每星期二中午12点         ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
  17. 每个月第一天的午夜12点    ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
  18. 每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
  19. 每星期六和日早上6点10分    ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
  20. 每3秒钟执行一次             'sysdate+3/(24*60*60)'
  21. 每2分钟执行一次           'sysdate+2/(24*60)'
  22. 1:每分钟执行
  23. Interval => TRUNC(sysdate,'mi') + 1/ (24*60) --每分钟执行
  24. interval => 'sysdate+1/(24*60)'  --每分钟执行
  25. interval => 'sysdate+1'    --每天
  26. interval => 'sysdate+1/24'   --每小时
  27. interval => 'sysdate+2/24*60' --每2分钟
  28. interval => 'sysdate+30/24*60*60'  --每30秒
  29. 2:每天定时执行
  30. Interval => TRUNC(sysdate+1)  --每天凌晨0点执行
  31. Interval => TRUNC(sysdate+1)+1/24  --每天凌晨1点执行
  32. Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60)  --每天早上8点30分执行
  33. 3:每周定时执行
  34. Interval => TRUNC(next_day(sysdate,'星期一'))+1/24  --每周一凌晨1点执行
  35. Interval => TRUNC(next_day(sysdate,1))+2/24  --每周一凌晨2点执行
  36. 4:每月定时执行
  37. Interval =>TTRUNC(LAST_DAY(SYSDATE)+1)  --每月1日凌晨0点执行
  38. Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24  --每月1日凌晨1点执行
  39. 5:每季度定时执行
  40. Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q')  --每季度的第一天凌晨0点执行
  41. Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') + 1/24  --每季度的第一天凌晨1点执行
  42. Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24  --每季度的最后一天的晚上11点执行
  43. 6:每半年定时执行
  44. Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24  --每年7月1日和1月1日凌晨1点
  45. 7:每年定时执行
  46. Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24  --每年1月1日凌晨1点执行
  47. 相关方法:
  48. 修改要执行的操作:dbms_job.what(jobno,'sp_fact_charge_code;');  --修改某个job名
  49. 修改下次执行时间:dbms_job.next_date(job,next_date);
  50. 修改间隔时间:dbms_job.interval(job,interval);
  51. 停止job:dbms.broken(job,broken,nextdate);
  52. dbms_job.broken(v_job,true,next_date);        --停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
  53. */
  54. create or replace procedure proc_auto_exec_job as
  55. begin
  56. declare
  57. job number;
  58. BEGIN
  59. DBMS_JOB.SUBMIT(
  60. JOB => job,  /*自动生成JOB_ID*/
  61. WHAT => 'proc_test_job;',  /*需要执行的过程或SQL语句*/
  62. /*NEXT_DATE => sysdate, */ /*初次执行时间,立刻执行*/
  63. /*INTERVAL => 'sysdate+3/(24*60*60)' */ /*执行周期 -每3秒钟*/
  64. NEXT_DATE => TRUNC(SYSDATE+1)+(0*60+30)/(24*60),  /*初次执行时间,12点30分*/
  65. INTERVAL => 'TRUNC(SYSDATE+1)+(0*60+30)/(24*60)'  /*每天12点30分*/
  66. );
  67. COMMIT;
  68. /*dbms_job.submit(job, 'proc_test_job;', sysdate, 'trunc(sysdate,''mi'')+1/(24*60)'); /*执行周期 -每1分钟*/
  69. commit;*/
  70. DBMS_JOB.RUN(job);
  71. end;
  72. end proc_auto_exec_job;
  73. begin proc_auto_exec_job; end;

ref:http://blog.csdn.net/thinkscape/article/details/7411012

ORACLE 定时执行存储过程相关推荐

  1. Oracle定时执行存储过程

    首先查看 SQL> show parameter job NAME                                 TYPE        VALUE ------------- ...

  2. oracle job如何执行存储过程,oracle定时执行存储过程的job

    本文转载:http://blog.csdn.net/flm_0722/archive/2009/10/08/4643566.aspx 一.设置初始化参数 job_queue_processes sql ...

  3. Oracle的job(定时执行存储过程)

    我们在项目开发中,常常会有一些复杂的业务逻辑.使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执 ...

  4. Oracle 定时执行计划任务

    Oracle 定时执行计划任务 Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER 来替代先前的DBMS_JOB,在功能方面,它比DBM ...

  5. Oracle 定时任务执行存储过程【建议收藏】

    首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一条数据. 实现方案: 1.通过 oracle 中 dbms_job 完成存储过程的定时调用 2.在存储过程中完成相应的 ...

  6. mysql定时执行存储过程

    mysql定时执行存储过程 查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件 ...

  7. SQLserver存储过程简单写法与设置定时执行存储过程方法

    最近工作中需要写SQLserver的存储过程,第一次使用,简单记录下,以防遗忘. 在SQLserver可视化工具中编写,我的工具如下图: 首先点击你的数据库,找到可编程性,在可编程性里面右击存储过程- ...

  8. PLSQL创建Oracle定时任务,定时执行存储过程

    1.创建定时向表中插入数据的存储过程,名为testJob. CREATE OR REPLACE PROCEDURE "testJob" AS BEGINEXECUTE IMMEDI ...

  9. Oracle定时任务执行存储过程备份日志记录表

    写在前面 需求 1.备份系统日志表T_S_LOG, 按照操作时间字段OPERATETIME, 将每天的日志增量备份到另一张表. 思路 1.创建一张数据结构完全相同的表T_S_LOG_BAK作为备份表 ...

最新文章

  1. Windows下程序启动时出现0xc000007b错误的解决方案
  2. 计组之中央处理器:1、CPU的功能和基本结构
  3. processing solution item 在加载时一直出现
  4. Vue使用Mint-ui的Popup, Picker组件报错问题
  5. 深度学习斯坦福cs231n 课程笔记
  6. 信息与计算机科学二级学科,《信息计算与智能系统》二级学科 硕士研究生培养方案...
  7. 多线程下载辅助类实现
  8. 08cms php5.4,08CMS - 内容管理CMS - PHP开源项目 - 开源吧
  9. 一款ModbusRTU/TCP485串口协议调试软件工具绿色版免安装
  10. css背景透明度影响字体--实现背景透明字体不透明
  11. 【推荐】阿里云主机accesskey利用工具
  12. c++直角空心三角形_八年级数学三角形专题知识点汇总,掌握了考满分!
  13. HTML html5基础详细笔记 第一个模块
  14. 科大奥瑞物理实验——光纤传感器实验
  15. 基于linux下的shell脚本的编写
  16. sql语句多表查询实例
  17. 笔记整理--Linux守护进程
  18. 安卓开发--运行你的APP
  19. POSIX、libc、glibc概念的理解
  20. php kafka使用

热门文章

  1. OpenGL Multi-Indirect Draw小行星的实例
  2. OpenGL 点光源的多遍阴影贴图
  3. c++Interpolation search插值搜索的实现算法之一(附完整源码)
  4. QT的QRubberBand类的使用
  5. 经典C语言程序100例之八四
  6. vnc远程登录linux黑屏,linux VNC安装好后登录黑屏 鼠标显示黑色大叉的解决方法
  7. intraweb php,使用 IntraWeb (40) - 自定义 Session 数据
  8. linux 如何让.开头的文件不隐藏_如何使用 BusyBox 制作Linux最小文件系统
  9. can 总线通信协议开发_Simulink应用层开发—CAN总线信号处理
  10. 「Anaconda」取消终端命令行自动加载的conda(base)虚拟环境