Oracle定时任务,是定时调用存储过程,执行存储过程中的SQl语句

SQl实例

建立存储过程

-- 建立存储过程
CREATE or replace PROCEDURE UPDATE_AGENCY is BEGIN UPDATE AGENCY SET AGENCY.STATUS = 'Y' WHERE AGENCY.NAME = '@濮阳生态经营部' OR AGENCY.NAME = '肆无忌惮经营部' OR AGENCY.NAME = '铠甲经营部'; -- 需要执行的SQl语句 end;
-- 根据存储过程昵称 查看存储任务
Select text from user_source where name='UPDATE_AGENCY' order by line; -- 删除存储过程
DROP PROCEDURE UPDATE_AGENCY;

注意:存储过程当中每条SQL必须以;分号符号结尾,否则创建任务引用存储过程是会报错,找不到存储过程

创建定时任务

-- 创建任务
declare tm_jobb number; --tm_joba定时任务名称 begin sys.dbms_job.submit( tm_jobb, --任务名称 'UPDATE_AGENCY;',--执行的存储过程 sysdate,--执行时间 'TRUNC(SYSDATE + 1) + (11*60+55)/(24*60)');--下次执行时间 11:55 COMMIT; end; -- 查看定时任务
SELECT * FROM user_jobs; -- 手动启动
BEGIN dbms_job.run(25); END; -- 停止任务
BEGIN dbms_job.broken(25,true); END; -- 删除任务
begin dbms_job.remove(25);--ALL_JOBS.job的值 end;

存job信息的表user_jobs主要字段说明:

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)'

每分钟执行

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秒

每天定时执行

Interval => TRUNC(sysdate+1)  --每天凌晨0点执行

Interval => TRUNC(sysdate+1)+1/24  --每天凌晨1点执行

Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60)  --每天早上8点30分执行

每周定时执行

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24  --每周一凌晨1点执行

Interval => TRUNC(next_day(sysdate,1))+2/24  --每周一凌晨2点执行

每月定时执行

Interval =>TTRUNC(LAST_DAY(SYSDATE)+1)  --每月1日凌晨0点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24  --每月1日凌晨1点执行

每季度定时执行

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点执行

每半年定时执行

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24  --每年7月1日和1月1日凌晨1点

每年定时执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24  --每年1月1日凌晨1点执行

注意:存储过程中执行的SQL语句一定要以;结尾

Oracle定时任务(执行某一SQL语句)的更多相关文章

  1. oracle 查询执行过的SQL语句

    SELECT * FROM v$sqlarea t WHERE t.FIRST_LOAD_TIME between '2016-12-23/16:03:00' and '2016-12-23/16:0 ...

  2. oracle 查询最近执行过的 SQL语句(转载)

    oracle 查询最近执行过的 SQL语句 (2014-06-09 18:02:43) 转载▼   分类: Database oracle 查询最近执行过的 SQL语句 select sql_text ...

  3. oracle 查询最近执行过的 SQL语句

    oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc;   SELE ...

  4. 如何在Oracle中一次执行多条sql语句 (.net C#)

    关键是不能换行,要加上begin ...sql... end;     每个SQL用:隔开,end后面必须加: 以下是拷贝于:http://www.cnblogs.com/teamleader/arc ...

  5. Oracle查询最近执行过的SQL语句

    oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc; SELECT ...

  6. ORACLE 查看有多个执行计划的SQL语句

    在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一 ...

  7. (学)如何在Oracle中一次执行多条sql语句

    队长同学原来的地址:https://www.cnblogs.com/teamleader/archive/2007/05/31/765943.html队长同学原来的描述: 有时我们需要一次性执行多条s ...

  8. 使用ODP.NET一次执行多句SQL语句

    在实际开发的时候有的时候希望一次执行多句SQL语句,又不想使用Transcation的话,可以直接将多句SQL语句拼接起来.例如: var sql = "Begin " + &qu ...

  9. 阿里巴巴(alibaba)系列_druid 数据库连接池_监控(一篇搞定)记录执行慢的sql语句

    参考帖子:http://www.cnblogs.com/han-1034683568/p/6730869.html Druid数据连接池简介 Druid是Java语言中最好的数据库连接池.Druid能 ...

  10. 利用pl/sql执行计划评估SQL语句的性能简析

    一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在.  那么,作为 ...

随机推荐

  1. 如果你项目使用了MyBatis-Plus你一定要用它

    还是先举个例子,魂斗罗小游戏应该很多90后都玩过,那个时代没有Iphone,没有各种电子产品(小学初中时代),这种小游戏应该就是很多90后的青春,反正那个时候只要放假就白天黑夜得玩.它就是那种2个好基 ...

  2. SqlServer查看表结构

    SELECT CASE WHEN col.colorder = 1 THEN obj.name ELSE '' END AS 表名 ,CASE WHEN col.colorder=1 then isn ...

  3. vue项目PC端如何适配不同分辨率屏幕

    配置前言 项目构建:基于vue-cli3构建,使用postcss-px2rem px2rem-loader插件进行rem适配实现原理:每次打包,webpack通过使用插件postcss-px2rem, ...

  4. react项目使用less样式,配置less

    create-react-app脚手架创建的项目有sass配置项,使用的时候只需要装包即可,下面是less使用的方法 由于 create-react-app 脚手架中并没有配置关于 less 文件的解 ...

  5. OFFICE-利用Word邮件合并功能联动编辑《目标责任成本调整说明》

    正文 00.开始以及目标 0.1 开始 众所周知的原因,X建工的很多文档都提供了一个填写模板,这是个好事.但是捏,当他们把模板放下来要来填数的时候,你会发现所有的数据,都是在不同的文档中搬来搬去,这点 ...

  6. uni-app介绍

    "优你"框架 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/ ...

  7. Luogu1772 [ZJOI2006] 物流运输

    传送门 简化题意 给你 \(m\) 个码头,码头之间有双向边连接,\(n\) 天,其中一些码头在某些天会不可用,这 \(n\) 天都要有一条从 \(1\) 到 \(m\) 的路,每一次更换道路会需要 ...

  8. phpstudy-sqlilabs-less-14

    题目:POST - Double Injection - Single quotes- String - with twist 和上关一模一样 uname=1"or 1=1 #&pa ...

  9. T-SQL——批量刷新视图

    目录 0. 背景说明 1. 查询出所有使用了指定表的视图并生成刷新语句 2. 创建存储过程批量刷新 3. 刷新全部的视图 4. 参考 shanzm--2023年5月16日 0. 背景说明 为什么要刷新 ...

  10. MD5加密后为0e开头的字符串

    QNKCDZO         0e830400451993494058024219903391 s878926199a      0e545993274517709034328855841020 s ...