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定时执行存储过程(转)
定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来. 首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一 ...
- Oracle定时执行存储过程
首先查看 SQL> show parameter job NAME TYPE VALUE-------------- ...
- oracle job 定时执行 存储过程
oracle job 定时执行 存储过程 一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式 SQL> create table JOB_TEST(a ...
- Oracle通过JOB定时执行存储过程实现两表数据比对
需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...
- 0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job
--oracle job 定时执行 存储过程 --建一张测试表 create table Person( name ), sex ) ); / --创建测试的存储过程 create or replac ...
- (转)Oracle定时执行计划任务
Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表.每天从数据库中提取符合条件的数据.每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就 ...
- Dapper完美兼容Oracle,执行存储过程,并返回结果集。
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合 ...
- Oracle中执行存储过程call和exec区别
Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是e ...
- 创建JOB定时执行存储过程
创建JOB定时执行存储过程有两种方式 方式1:通过plsql手动配置job,如下图: 方式2:通过sql语句,如下sql declare job_OpAutoDta pls_integer;--声明一 ...
随机推荐
- 让我们喝喝下午茶,聊聊AJAX和JSON
1.AJAX [1] AJAX简介 > 全称:Asynchronous JavaScript And XML > 直译:异步的JavaScript和 ...
- ORACLE数据库异步IO介绍
异步IO概念 Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能.它是Linux 2.6 版本内核的一个标准特性,当然我们在2.4 版本内核的补丁中也可以找到它.AIO 背 ...
- Nginx中文手册
Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 目 录 一. Nginx ...
- 常用的JAVA集合讲解
java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Coll ...
- sql server 2008 相关基础(物理备份还原)
1. restore database KLJY_juncsoft from disk= 'D:\\kljy_2012_12_28.bak' with recovery 注意在还原时,进度一直显示0% ...
- maven 常见错误解决方法
1. 最重要的一点,使用国内镜像,比如 oschina.net 的镜像: 搜 jar 推荐:http://maven.outofmemory.cn/,速度极快. 2. 错误:Could not res ...
- MySQL 优化之 index merge(索引合并)
深入理解 index merge 是使用索引进行优化的重要基础之一.理解了 index merge 技术,我们才知道应该如何在表上建立索引. 1. 为什么会有index merge 我们的 where ...
- 烂泥:【解决】NFS服务器使用showmount –e命令报错
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 今天在NFS服务器使用showmount –e查看NFS共享目录时,发现系统一直显示如下错误: clnt_create: RPC: Port mappe ...
- sizeof和strlen()区别
sizeof关键字和strlen()标准函数都可以用来测试字符串的长度,但是两者有很大的不同 sizeof只能在本函数内, 使用""和不指定长度的字符数组中才能测出字符串的真实长度 ...
- dpkg
dpkg是debian最早提出的一个软件包管理工具,因为早期并没有考虑到当下软件包之间这么复杂的依赖关系,所以并不能自动解决软件包的依赖问题,这个命令多用于安装本地的.deb软件包,也可以进行软件包的 ...