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

  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定时执行存储过程(转)

    定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来.       首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一 ...

  2. Oracle定时执行存储过程

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

  3. oracle job 定时执行 存储过程

    oracle job 定时执行 存储过程   一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式 SQL> create table JOB_TEST(a ...

  4. Oracle通过JOB定时执行存储过程实现两表数据比对

    需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...

  5. 0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job

    --oracle job 定时执行 存储过程 --建一张测试表 create table Person( name ), sex ) ); / --创建测试的存储过程 create or replac ...

  6. (转)Oracle定时执行计划任务

    Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表.每天从数据库中提取符合条件的数据.每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就 ...

  7. Dapper完美兼容Oracle,执行存储过程,并返回结果集。

    Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合 ...

  8. Oracle中执行存储过程call和exec区别

    Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是e ...

  9. 创建JOB定时执行存储过程

    创建JOB定时执行存储过程有两种方式 方式1:通过plsql手动配置job,如下图: 方式2:通过sql语句,如下sql declare job_OpAutoDta pls_integer;--声明一 ...

随机推荐

  1. mac os下可能是最好的豆瓣电台——diumoo

    由于我一直用豆瓣fm听音乐,在网上找了下豆瓣的相关应用,都感觉不是太好, 最后发现一个mac版的app--diumoo! 这个软件看着非常舒服,一点也不占桌面空间,它一直默默在桌面右上角,鼠标划上去会 ...

  2. 基于ZooKeeper的Dubbo注册中心

    SOA服务治理 dubbo_zk 服务总线 感兴趣的M我微信:wonter 微信扫描,人人 CTO 大本营 基于SOA架构的TDD测试驱动开发模式 服务治理要先于SOA 简述我的SOA服务治理 从页面 ...

  3. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲

    又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...

  4. C#语句2——循环语句(for穷举、迭代和while循环)

    一.for循环拥有两类: (一).穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元. ...

  5. SQL Server:孤立用户详解

    SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个SQL Serv ...

  6. A record--Offline deployment of Big Data Platform CDH Cluster

    A record--Offline deployment of Big Data Platform CDH Cluster Tags: Cloudera-Manager CDH Hadoop Depl ...

  7. Linux IPC POSIX 消息队列

    模型: #include<mqueue.h> #include <sys/stat.h> #include <fcntl.h> mq_open() //创建/获取消 ...

  8. 使用VIM插件ctags来阅读C代码

    说明 Ctags是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim.并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码:ctags最先是用 ...

  9. 深入理解linux系统的目录结构(总结的非常详细)

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  10. Codevs 1025 选菜

    题目描述 Description 在小松宿舍楼下的不远处,有PK大学最不错的一个食堂--The Farmer's Canteen(NM食堂).由于该食堂的菜都很不错,价格也公道,所以很多人都喜欢来这边 ...