oracle 定时任务
可执行脚本
--创建一个定时任务
declarejob number;
BEGINDBMS_JOB.SUBMIT( JOB => job, /*自动生成JOB_ID*/ WHAT => 'GET_WARNING_INFO(2, 202, ''2,44,11'');', /*需要执行的存储过程名称或SQL语句*/ NEXT_DATE => sysdate, /*初次执行时间-立即执行*/ INTERVAL => 'trunc(sysdate,''mi'')+1/(24*60)' /*每隔1分钟执行一次*/); commit;
end;
--删除定时任务
begindbms_job.remove(83); /*删除自动执行的job,参数是 job的id*/commit;
end;----------------------------------定时任务处理启动结束 start-----------------------
-- 电子签章定时任务处理 DECLARE v_job NUMBER; BEGINSELECT t.JOB INTO v_job FROM dba_jobs t WHERE t.WHAT = 'NON_FLOW_PKG.SAVE_NON_FLOW_ACT_FOR_SIGN;' dbms_job.run(v_job); --启动定时任务--dbms_job.broken(v_job, true, sysdate); --结束定时任务 true:结束 commit;
end;
----------------------------------定时任务处理启动结束 end------------------------------------------------------------------定时任务查询 start--------------------------------
--
--查看定时任务 启动(25 2012/9/14 1 11:06:17 0 n) 停止(25 4000/1/1 00:00:00 0 y) 状态
-- job:定时任务Id next_date: 时间明确 就是下次执行时间,4000-1-1 定时任务处于停止状态 failures:任务执行失败的总次数 broken: Y:停止 N:开启 select what,job, next_date, next_sec, failures, broken from user_jobs ; --查询当前用户定时任务SELECT t.WHAT,job, next_date, next_sec, failures, broken FROM dba_jobs t --查询数据库里所有任务WHERE t.WHAT = 'NON_FLOW_PKG.SAVE_NON_FLOW_ACT_FOR_SIGN;' --定时任务名称OR t.JOB = '21'; --定时任务编号-- 命令窗口查看进程数 必须大于10 这个是定时任务执行的最小进程数,当定时任务开启但是没执行,看下这个,小于0必须改到大于10 --在命令窗口看
show parameter job_queue_processes;
-- 不大于0修改
alter system set job_queue_processes=10;----------------------------------定时任务查询 end--------------------------------
dba_jobs 表中字段含义:
JOB 任务的唯一标识码
LOG_USER 提交任务的用户
PRIV_USER 赋予任务权限的用户
SCHEMA_USER 对用户作语法分析的用户模式
LAST_DATE 最后一次成功执行任务的时间
LAST_SEC 最后一次成功执行任务的时间的时分秒
THIS_DATE 正在执行的任务的开始时间,若没有则为空
THIS_SEC 正在执行的任务的开始时间的时分秒,若没有则为空
NEXT_DATE 下一次执行定时任务的时间
NEXT_SEC 下一次执行定时任务的时间的时分秒
TOTAL_TIME 执行当前任务所需要的时间,单位:秒
BROKEN 标志参数,Y表示任务中断,以后不会再运行
INTERTAL 计算下一次执行定时任务的时间表达式
FAILURES 当前定时任务执行失败的总次数
WHAT 执行任务的PL/SQL代码块
NLS_ENV 任务执行的NLS会话设置
MISC_ENV 定时任务运行的其他一些参数设置
INSTANCE 标识当前任务运行是否受限,0 没有受限
INTERVAL 部分参数值示例:
每天午夜12点: ‘TRUNC(SYSDATE + 1)’
每天早上8点30分: ‘TRUNC(SYSDATE + 1) + (860+30)/(2460)’
每星期二中午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)’
每月25号00:00执行: ‘TRUNC(LAST_DAY(SYSDATE ) + 25)’
--------------------------
1:每分钟执行
Interval => TRUNC(sysdate,‘mi’) + 1/ (24*60)
或
Interval => sysdate+1/1440
2:每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定时执行
例如:每周一凌晨1点执行
Interval => TRUNC(next_day(sysdate,‘星期一’))+1/24
4:每月定时执行
例如:每月1日凌晨1点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5:每季度定时执行
例如每季度的第一天凌晨1点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),‘Q’) + 1/24
6:每半年定时执行
例如:每年7月1日和1月1日凌晨1点
Interval => ADD_MONTHS(trunc(sysdate,‘yyyy’),6)+1/24
7:每年定时执行
例如:每年1月1日凌晨1点执行
Interval =>ADD_MONTHS(trunc(sysdate,‘yyyy’),12)+1/24
oracle 定时任务相关推荐
- oracle定时任务失效
发现系统数据没有更新,查看oracle定时任务,估计没有执行. 发现next_date变成了4000/1/1 ,broken被选中. select * from user_jobs发现该任务失败次数达 ...
- oracle 定时任务 job 调用存储过程有回到输出参数(含out参数)
oracle 定时任务 job 调用存储过程有返回输出参数(含out参数) 因前台调用一个含有OUT参数的存储过程,同时在JOB里也想调用同一个存储过程,不想将OUT参数去掉重新建一个存储过程再被JO ...
- oracle 定时任务例子【项目例子】
说明:请在plsql工具的命令窗口中,依次按步骤执行如下脚本 (1)建立备份表 my_test_log2 create table my_test_log2 as select * from m ...
- Oracle 定时任务job使用详解
Oracle 定时任务job使用详解 1.定时任务job job在指定的时间点或每天的某个时间点自行执行任务. 关键性能视图 SQL> desc user_jobs; Name Type Nul ...
- oracle 定时任务删除数据
这几天在工作中遇到一个问题就是:要删除表在备份表中已存在的数据(2000多万数据),这个数据是SQL查出来的,例如: select count(1) from JY_SALE_FULLORDER_DT ...
- oracle sys.dbms job,Oracle定时任务之Job和Dbms_job
感谢老哥,解决了我的疑惑 https://www.cnblogs.com/yscit/p/10376005.html https://www.cnblogs.com/ybhcolin/archive/ ...
- oracle工作每月1号,利用oracle定时任务生成每月从1开始的流水号
--创建序列 --入库 create sequence rk_seq; --出库 create sequence ck_seq; --移库 create sequence yk_seq; --创建存储 ...
- 新建oracle数据库定时任务,创建 Oracle 定时任务
功能说明: 要求实现数据库中的表数据每天午夜时分定时自动执行数据迁移动作. 1. 创建历史数据存储表(USER_TAB_BAK), 要求与源表(USER_TAB)结构一致; for example: ...
- oracle user_scheduler_jobs,Oracle 定时任务dbms_scheduler
1. 简介 在Oracle 10g之前,我们通过DBMS_JOB来管理定时任务: 而10g之后,则推荐使用DBMS_SCHEDULER来管理定时任务,因为它提供了更强大的功能和灵活的机制. 2. 需要 ...
- Oracle定时任务执行存储过程备份日志记录表
写在前面 需求 1.备份系统日志表T_S_LOG, 按照操作时间字段OPERATETIME, 将每天的日志增量备份到另一张表. 思路 1.创建一张数据结构完全相同的表T_S_LOG_BAK作为备份表 ...
最新文章
- 11大改革举措!国家自然科学基金2021年项目指南发布
- jmeter名词解释之聚合报告
- 论文的“面子”与“里子”
- 【7】AccessDB快速数据访问
- Qt-事件循环概念及循环函数详解
- 固态函数不正确_一文解读quot;固态电容quot;的利与弊
- Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
- HttpRunnerManager接口自动化测试框架在win环境下搭建教程
- 数值分析(6)-函数逼近的基本概念
- mysql插入用户 5.7_mysql 5.7 用户添加与权限管理
- 无线通信设备安装工程概预算编制_深圳宝安不锈钢厨房设备安装工程
- 英语音乐---三、Cry on my shoulder
- Centos 7/8 root密码重置
- 当今几大主流服务器的操作系统简介
- Home Assistant系列 -- 接入手机摄像头做实时监控和人脸识别
- Anki 2.1.24 版本更新要点
- 《模拟电子技术》(第五版)课后习题粗讲——第一章
- Android Studio打包APK安装失败:应用是非正式版本,当前设备不支持安装
- java炼精化气之数组上山
- WSL2中使用VcXsrv实现xfce4图形界面