首页 > 数据库 >Oracle定时任务

Oracle定时任务

时间:2024-03-25 15:45:42浏览次数:27  
标签:1283 JOB job 任务 Oracle 定时 执行

一、创建语句

declare
  job number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => job,  		/*自动生成JOB_ID*/  
        WHAT => 'proc_cam;',  
        NEXT_DATE => to_date('2022-03-14 15:40:00', 'yyyy-mm-dd hh24:mi:ss'),
        INTERVAL => 'sysdate+30/(24*60)' /*每隔30分钟执行一次*/
      );  
  commit;
end;

参数含义:

JOB:指定定时任务的 JOB_ID,上面代码指自动生成;

WHAT:需要执行的存储过程名称或SQL语句,多个以分号隔开,注意最后有个分号;

NEXT_DATE:初次执行时间;

INTERVAL:多久执行一次。

二、查询定时任务

当前用户定时任务

select * from user_jobs;

有权限访问的定时任务

select * from all_jobs;

整个数据库所有的定时任务

select * from dba_jobs;

查询上面例子创建的定时任务:select * from dba_jobs where what like '%proc_cam%';

三、任务时间间隔设计

指定两次任务执行的时间间隔

描述interval 参数值
每天执行一次 'SYSDATE+1′
每小时执行一次 'SYSDATE+1/24'
每10分钟执行一次 'SYSDATE+10/(24*60)'
每30秒执行一次 'SYSDATE+30/(24*60*60)'
每个星期执行一次 'SYSDATE+7'

也可以指定具体时间

描述参数值
每天6点 执行 'Trunc(Sysdate+1) + 6/24'
每天08:10:00 执行 'Trunc(Sysdate+1) + (8*60+10)/24*60'
每周一凌晨1点执行 ' TRUNC(next_day(sysdate,"星期一"))+1/24'
每月1日凌晨1点执行 ' TRUNC(LAST_DAY(SYSDATE))+1+1/24'

四、操作

手动执行定时任务

BEGIN
DBMS_JOB.RUN(1283); --1283为JOB任务的 ID
commit;
END;

停止定时任务

BEGIN
dbms_job.broken(1283,true,sysdate);        --1283为JOB任务的 ID,sysdate是指在指定时间停止
commit;
END;

删除定时任务

begin
  dbms_job.remove(1283);  --1283为JOB任务的 ID
  commit;
end;

修改定时任务的时间间隔

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

修改下一次执行时间

begin
   dbms_job.next_date(1283,to_date('2022-03-15 12:00:00','yyyy-mm-dd hh24:mi:ss')); /*第一个参数:job的ID;第二个参数:要修改后的计算下一次执行的时间表达式*/
   commit;
end;

修改定时任务要执行的操作

begin
    dbms_job.what(1283,'testJob2();');   /* 第一个参数:job的ID;第二个参数:要更改的新操作名称(存储过程名称或SQL语句,必须存在)*/
commit;
end;

转自:https://www.cnblogs.com/luler/p/16004689.html

标签:1283,JOB,job,任务,Oracle,定时,执行
From: https://www.cnblogs.com/tk-bolg/p/18094579

相关文章

  • win11资源管理器卡死(任务栏应用图标朦胧/系统时间不更新/应用图标点击无响应)
    目录传送门前言一、临时快速解决办法二、永久解决三、其他解决推荐传送门SpringMVC的源码解析(精品)Spring6的源码解析(精品)SpringBoot3框架(精品)MyBatis框架(精品)MyBatis-PlusSpringDataJPASpringCloudNetflixSpringCloudAlibaba(精品)ShiroSpringSecurityjava的......
  • Oracle-12541无监听或者链接一直未响应
    近日Oracle服务器断电重启后服务挂了,现记录下主要的修复步骤1.检查磁盘空寂是否股够df-h2.服务挂载并启动服务器登录oracle帐号依次输入下列命令:sqlplus /assysdbashutdownimmedicatestartup3.服务启动测试退出linux终端,重新打开登陆sqlplus输入帐号/秘密:system......
  • BPMN2.0基础学习第一篇-Task(任务)
    BPMN2.0-Task(任务)BPMN2.0介绍BPMN(BusinessProessModel&Notation,业务流程模型与符号)2.0规范是OMG(ObjectManagementGroup,对象管理组织)制定的,其主要目的是既给用户提供一套简单的、容易理解的机制,以便用户创建流程模型;又使用户能很好地处理不同流程模型内在的复杂性......
  • STM32之HAL开发——系统定时器(SysTick)
    系统定时器(SysTick)介绍   SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生......
  • 10_FreeRTOS任务相关API函数
    FreeRTOS任务相关API函数FreeRTOS任务相关API函数介绍UBaseType_tuxTaskPriorityGet(constTaskHandle_txTask)voidvTaskPrioritySet(TaskHandle_txTask,UBaseType_tuxNewPriority)UBaseType_tuxTaskGetNumberOfTasks(void)uxTaskGetSystemStatevTaskGe......
  • 08_任务调度
    任务调度开启任务调度器vTaskStartScheduler()xPortStartScheduler()启动第一个任务prvStartFirstTask()vPortSVCHandler()出栈/压栈汇编指令详解任务切换PendSV中断是如何触发的?查找最高优先级任务前导置零指令获取最高优先级任务的任务控制块PendS......
  • C++创建异步任务
    namespaceCore{/***创建一个异步任务的包装函数,返回一个指向std::packaged_task的shared_ptr。**@tparamF函数类型*@tparamArgs参数类型*@paramf要执行的函数*@paramargs函数的......
  • Centos7虚拟机中oracle19c数据库安装
    目录[-]  1. Centos7虚拟机中oracle19c数据库安装1.1. 1.先诀条件1.2. 2.oracle19c安装准备(root用户下执行)1.3. 3.CentOS7上安装oracle19c1.先诀条件 本文在安装oracle19c时,各项oracle配置操作都通过图形界面进行。因此CentOS7系统需要安装gn......
  • Java面试题:用Java并发工具类,实现一个线程安全的单例模式;使用Java并发工具包和并发框架
    面试题一:设计一个Java并发工具类,实现一个线程安全的单例模式,并说明其工作原理。题目描述:请设计一个Java并发工具类,实现一个线程安全的单例模式。要求使用Java内存模型、原子操作、以及Java并发工具包中的相关工具。考察重点:对Java内存模型的理解。对Java并发工具包的了......
  • SCHTASKS命令参数 :允许管理员在本地或远程系统上创建、删除、查询、更改、运行和结束
    C:\Windows\System32\Tasks文件夹下的XML文件是用来存储Windows操作系统中计划任务的信息的。Windows操作系统通过这些XML文件来管理和存储各种预定的任务,例如定时备份、系统维护、自动更新等。这些任务可以在特定的时间或事件发生时自动执行,而XML文件则包含了这些任务的配置信......