PLSQL 创建Oracle定时任务

用语句创建

1、创建任务执行的存储过程,如名称为testJob,向测试表中插入数据,如文章开头,此处省略。

2、创建一个 定时任务 job

declare
  job number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => job,  /*自动生成JOB_ID*/  
        WHAT => 'testJob;',  /*需要执行的存储过程名称或SQL语句*/  
        NEXT_DATE => sysdate,  /*初次执行时间-立即执行*/  
        INTERVAL => 'trunc(sysdate,''mi'')+1/(24*60)' /*每隔1分钟执行一次*/
      );  
  commit;
end;
3、查询定时任务相关字段信息

select *  from user_jobs;

4 、停止定时任务

declare
begin   
  dbms_job.broken(24,true,sysdate);        /*停止一个job,jobId, job的ID,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。   */
commit;
end;
5、启动指定定时任务

declare
begin
   DBMS_JOB.RUN(24); /*24 job的id*/
   commit;
end;
6、删除定时任务

declare
begin
  dbms_job.remove(24);  /*删除自动执行的job,参数是 job的id*/
  commit;
end;
7、修改定时任务的间隔时间

declare
begin
  dbms_job.interval(24,interval => 'TRUNC(SYSDATE)+1');  /*第一个参数为job的ID,第二个参数interval: 计算下一次任务执行的时间表达式*/
  commit;
end;
8、修改下一次执行时间

declare
begin
   dbms_job.next_date(24,to_date('2020-11-9 12:08:00','yyyy-mm-dd hh24:mi:ss')); /*第一个参数:job的ID;第二个参数:要修改后的计算下一次执行的时间表达式*/
   commit;
end;
9、修改定时任务要执行的操作

declare
begin
    dbms_job.what(24,'testJob2();');   /* 第一个参数:job的ID;第二个参数:要更改的新操作名称(操作名必须存在)*/
commit;
end;
三、结

1、dba_jobs 表中字段含义

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 没有受限
2、INTERVAL 部分参数值示

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)'
 
每月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
————————————————
版权声明:本文为CSDN博主「不要作为一个无知人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31835117/article/details/90511517

创建Oracle定时任务相关推荐

  1. 新建oracle数据库定时任务,创建 Oracle 定时任务

    功能说明: 要求实现数据库中的表数据每天午夜时分定时自动执行数据迁移动作. 1. 创建历史数据存储表(USER_TAB_BAK), 要求与源表(USER_TAB)结构一致; for example: ...

  2. PLSQL创建Oracle定时任务,定时执行存储过程

    1.创建定时向表中插入数据的存储过程,名为testJob. CREATE OR REPLACE PROCEDURE "testJob" AS BEGINEXECUTE IMMEDI ...

  3. PLSQL创建Oracle定时任务

    转自:http://www.cnblogs.com/yx007/p/6519544.html#_label0 转载于:https://www.cnblogs.com/good-tomorrow/p/7 ...

  4. oracle 定时任务例子【项目例子】

    说明:请在plsql工具的命令窗口中,依次按步骤执行如下脚本    (1)建立备份表 my_test_log2 create table my_test_log2 as select * from m ...

  5. Oracle定时任务(1)-DBMS_SCHEDULER

    Oracle 10g之前,可以使用dbms_job来管理定时任务. 10g之后,Oracle引入dbms_scheduler来替代先前的dbms_job, 在功能方面,它比dbms_job提供了更强大 ...

  6. Oracle 定时任务job使用详解

    Oracle 定时任务job使用详解 1.定时任务job job在指定的时间点或每天的某个时间点自行执行任务. 关键性能视图 SQL> desc user_jobs; Name Type Nul ...

  7. oracle 定时任务删除数据

    这几天在工作中遇到一个问题就是:要删除表在备份表中已存在的数据(2000多万数据),这个数据是SQL查出来的,例如: select count(1) from JY_SALE_FULLORDER_DT ...

  8. oracle sys.dbms job,Oracle定时任务之Job和Dbms_job

    感谢老哥,解决了我的疑惑 https://www.cnblogs.com/yscit/p/10376005.html https://www.cnblogs.com/ybhcolin/archive/ ...

  9. oracle工作每月1号,利用oracle定时任务生成每月从1开始的流水号

    --创建序列 --入库 create sequence rk_seq; --出库 create sequence ck_seq; --移库 create sequence yk_seq; --创建存储 ...

  10. 如何创建systemd定时任务

    1. 如何创建一个定时任务,通过systemd系统 1. 如何创建一个定时任务,通过systemd系统 1.1. systemd中的timer 1.2. 自定义定时任务 1.2.1. 具体步骤 1.2 ...

最新文章

  1. ORACLE 12C PDB部分功能测试
  2. Dom操作xml的常用方法
  3. Hibernate介绍
  4. Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略
  5. u盘安装linux启动报错,U盘安装centos7,启动报错
  6. docker选择安装位置_自定义WSL的安装位置,别再装到C盘啦
  7. 聊聊推荐系统的高阶特征交叉问题
  8. 用matlab的ADC和DAC过程,谈谈我理解的ADC和DAC
  9. 【转】ListT和ILIstT的区别
  10. 【31】将文件间的编译依存关系降至最低
  11. 【Zepto笔记】Zepto.js
  12. opencv3颜色识别(C++)
  13. PR(Adobe Premiere Pro)软件基础知识
  14. WPS删除所有的页码
  15. Web语音播报提示音
  16. 有关于计算机技术节日名称,三月份有关计算机的节日
  17. 一元二次方程求根计算机的代码,一元二次方程求根Java源程序代码.doc
  18. win10专业版电脑不能局域网访问win10家庭版
  19. ThingsBoard中的关系Relation
  20. 小忽视大问题:4.8通过 Apple 登录

热门文章

  1. (图文)最详细的XAMPP的安装及使用教程
  2. 一篇文章教会你需求分析文档怎么写
  3. qt 正则表达式 和 常用正则表达式应用
  4. 自动控制原理学习笔记(三)线性定常离散控制系统的数学模型
  5. php千月影视,千月影视双端源码完美运营新手搭建教程
  6. xftp中文文件名乱码
  7. linux中不用命令安装flash,如何在Linux下安装flash player
  8. VK1640兼用TM1640
  9. qt引入txt文件_QT 读取txt文件的几种方法
  10. 【小程序】小程序开发工具的主要环境设置