实现oracle-job准确定时

简介:

下面的代码将MyPkg.MyProc定于每日08:56执行,参数为系统日期前一天:

 
  1. declare 
  2.  n_job number;  
  3. begin 
  4.   sys.dbms_job.submit(job => n_job,  
  5.                       what => 'MyPkg.MyProc(to_number(to_char(sysdate-1,''YYYYMMDD'')));',  
  6.                       next_date => to_date('02-08-2012 08:56:00''dd-mm-yyyy hh24:mi:ss'),  
  7.                       interval => 'trunc(sysdate)+1+(8*60+56)/(24*60)');  
  8.   commit;  
  9. end;  

其中准确定时的关键片断是:

 
  1. interval => 'trunc(sysdate)+1+(8*60+56)/(24*60)'

网上搜索到的样例往往是sysdate+1,这会根据程序运行结束时间不停的推迟,例如假设程序运行时长始终是4分钟,那么第一天08:56执行,第二天就会09:00执行,第三天09:04执行,依次类推。本例计算公式中运用tunc(sysdate)规避程序运行结束时间的影响,用(8*60+56)/(24*60)来精确指定08:56执行,从而实现job准确定时。



 本文转自 hexiaini235 51CTO博客,原文链接:http://blog.51cto.com/idata/949654,如需转载请自行联系原作者


相关文章
|
SQL 存储 监控
Oracle中的SQL_TRACE是什么?诊断事件是什么?常用的10046及10053诊断事件的区别是什么?
Oracle中的SQL_TRACE是什么?诊断事件是什么?常用的10046及10053诊断事件的区别是什么?
513 0
|
Oracle 关系型数据库 数据库
oracle手工生成AWR报告方法记录
AWR(Automatic Workload Repository)报告是我们进行日常数据库性能评定、问题SQL发现的重要手段。熟练掌握AWR报告,是做好开发、运维DBA工作的重要基本功。
1437 0
|
Oracle 关系型数据库
Oracle如何重启mmon/mmnl进程(AWR自动采集)
Oracle如何重启mmon/mmnl进程(AWR自动采集)
1136 0
|
SQL 监控 Oracle
oracle故障脚本收集
个人工作经验整理的,仅供参考
359 0
|
SQL Oracle 关系型数据库
ORACLE AWR报告生成过程出现多个实例记录分析
在一次生成AWR报告中,发现在“Instances in this Workload Repository schema”部分,出现了多个实例记录信息(host敏感信息被用host1,host2,host3替换)。
1324 0
|
SQL Oracle 关系型数据库
Oracle 11g 之自动收集统计信息
SQL> select client_name,status from dba_autotask_client; CLIENT_NAME STATUS---------------------...
1555 0
|
Oracle 关系型数据库 RDS
|
Oracle 关系型数据库 存储