博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中定时执行问题
阅读量:4073 次
发布时间:2019-05-25

本文共 871 字,大约阅读时间需要 2 分钟。

经常碰到一个问题就是,在Oracle中,需要定时执行一定的存储过程来处理数据,自然人们都会想到Job。

1、JOB创建,这个比较简单,很多工具提供可视化界面创建,参数解释也很详细,主要是三个参数 

what, 存储过程名

next date 下次执行时间  如果马上执行可以写为Sysdate

interval 执行间隔 Sysdate + X  其中X表示天数,如果少于一天用小数或分数表示 例如十分钟执行一次可以写为 10 / 1440 (每天为1440分钟)

通过dbms_job.submit来提交,例子:

begin

  sys.dbms_job.submit(job => :job,
                      what => 'proc_getrptstatus;',
                      next_date => to_date('23-10-2007 08:21:47', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1/288');
  commit;
end;
/

提交之后,还不会自动执行,你需要首先执行一下,记录下上面生成的JOBID

exec dbms_job.run(job_id)

2、通过上面的步骤你可能会发现,并没有自动执行,为什么呢?

因为还有一个参数需要设置,就是Oracle允许执行的JOB数,默认执行数为0 最大不能超过1000

你可以通过语句查看

show parameter job_queue_processes;

如果需要修改,使用alter system来做,例子

alter system set job_queue_processes=10;

3、这样处理之后你会发现,数据库重启之后job_queue_processes仍然会变成0

这是因为你通过Alter system改变参数之后,没有将这个数据保存,

你可以打开init.ora,增加或者修改

job_queue_processes=10

重启之后,这个参数就会生效

 

这样Job就能自动执行了,详细的应用还很多,可以查看文档

dbms_

转载地址:http://cggji.baihongyu.com/

你可能感兴趣的文章
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>