首页 > 数据库 >Oracle 创建、暂停、更改、删除 定时任务job

Oracle 创建、暂停、更改、删除 定时任务job

时间:2023-02-25 16:34:16浏览次数:35  
标签:24 任务 job Oracle 定时 执行 TRUNC

--查询 当前库中运行的 job ;
ELECT t.* FROM  dba_jobs t     
          
--创建一个 定时任务 job
    declare  
      job number;  
    BEGIN  
      DBMS_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;  

--根据某个job下次的执行时间
SELECT job,next_date,what FROM dba_jobs WHERE JOB = 定时任务的唯一标识码JOB;   /*定时任务的下一次执行时间*/  
         
--手动调用job
begin  
       DBMS_JOB.RUN(40); /*40 job的id*/  
     end;  

--停止 job
begin     
      dbms_job.broken(jobId,true,next_date);        /*停止一个job,jobId, job的ID,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。   */  
    commit;  
    end;  

--删除 job
begin  
      dbms_job.remove(83);  /*删除自动执行的job,参数是 job的id*/  
      commit;  
    end;  

--修改 job 的间隔时间
begin  
      dbms_job.interval(job,interval);  /*job  job的ID,interval: 计算下一次任务执行的时间表达式*/  
      commit;  
    end;  

--修改下一次执行时间
begin  
       dbms_job.next_date(job,next_date); /*job: job 的ID;nex_date:要修改后的计算下一次执行的时间表达式*/  
       commit;  
    end;  
         
--修改定时任务 job 要执行的操作
begin  
        dbms_job.what('newProcedures();');   /*newProcedures(); 要更改的新操作名称*/  
      commit;  
    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) + (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

标签:24,任务,job,Oracle,定时,执行,TRUNC
From: https://www.cnblogs.com/zhangkaimin/p/17154706.html

相关文章

  • stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
    文章目录​​一、三种定时器的区别​​​​二、通用定时器特点​​​​2.1功能特点描述​​​​2.2计数器模式​​​​三、通用定时器工作过程​​​​四、附​​一、三种......
  • LQB04 定时器代码使用01,定时闪烁灯和定时框架。
    1、STC-ISP软件定时函数的生成,定时案例库的学习;2、定时器0,闪烁LED1;定时500ms,间隔定时器1,闪烁LED2,定时800ms,间隔。3、快速搭建框架。这里只讲解直接的使用,不讲解内部细节......
  • Oracle计算对公天数
    createorreplacefunctioncalTwoDays(startDateindate,endDateindate)returnnumberisdtStaDatdate;dtEndDatdate;start_date_str......
  • Docker 启动报:Job for docker.service failed because the control process exited wi
    方法:1、在/etc/docker/daemon.json路径下添加代码。没有这个文件的可以手动添加touch/etc/docker/daemon.json在里面添加代码:{"storage-driver":"devicemapper"}......
  • SpringBoot24 - 定时任务
    任务​ springboot整合第三方技术第二部分我们来说说任务系统,其实这里说的任务系统指的是定时任务。定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算......
  • oracle:查看sql执行计划 explain PLAN FOR
    例如:explainPLANFORselect*from(selectoti.*frommb_order_ticket_itemotiwhereoti.ticket_idin(selectot.idfrommb_order_ticketotwhereot.ti......
  • 定时任务原理方案综述
    定时任务原理方案综述https://mp.weixin.qq.com/s/u6EFPVql4IuoG9-NJLDhsA定时任务原理方案综述原创 肖明睿 京东技术 2023-02-2319:00 发表于北京 Tech导读......
  • 使用 PL/SQL Developer Version 14 调试 Oracle 存储过程
    1、选中当前存储过程,右击后弹出上下文菜单,点击“测试”(如下图):2、编辑目标存储过程,在需要关注的语句行号前右击鼠标设置断点,如下图:3、修改调试窗口的代码为代码块中初始化......
  • linux下oracle自动备份
    备份脚本1vi/backup/oracledata/ordatabak.sh#!/bin/bashexportORACLE_BASE=/u01/oracleexportORACLE_HOME=$ORACLE_BASE/oracleexportORACLE_SID=orclexportPATH=......
  • 分布式定时任务
    windows和Linux的cron可实现单机定时任务(平台依赖,单机)java的Timer、ScheduledExecutorService和go的Ticker可在编程语言层面实现定时器(跨平台,单机)Quartz是一个完全由J......