oracle 定时任务dbms_job 增删改查

server/2024/11/15 6:06:49/

在Oracle数据库中,DBMS_JOB包曾经被广泛用于调度和管理数据库作业(jobs)。然而,从Oracle 11g Release 2开始,Oracle推荐使用更先进的DBMS_SCHEDULER包来替代DBMS_JOB,因为DBMS_SCHEDULER提供了更丰富的功能和更好的灵活性。不过,为了回答你的问题,这里将简要介绍如何使用DBMS_JOB进行增删改查操作。

1. 创建作业(增)

使用DBMS_JOB.SUBMIT过程来创建作业。你需要指定作业号(如果为NULL,Oracle会自动分配)、过程名称、开始时间、间隔时间以及参数(如果需要)。

DECLARE  job_no NUMBER;  
BEGIN  DBMS_JOB.SUBMIT(  job        => job_no,        -- 作业号,如果为NULL,则Oracle自动分配  what       => 'your_procedure;', -- 要执行的PL/SQL块或过程  next_date  => SYSDATE,      -- 作业下次执行的时间  interval   => 'SYSDATE+1'   -- 作业执行的频率(此处为每天)  );  COMMIT;  DBMS_OUTPUT.PUT_LINE('Job Number is: ' || job_no);  
END;  
/

注意:your_procedure应该是一个PL/SQL过程名,不包括括号,即使过程不需要参数。

2. 修改作业(改)

DBMS_JOB包本身没有直接修改作业(如更改执行频率或作业内容)的接口。你需要先删除旧作业,然后创建一个新的作业来替换它。

3. 删除作业(删)

使用DBMS_JOB.REMOVE过程来删除作业。

BEGIN  DBMS_JOB.REMOVE(job_no);  -- job_no 是你想要删除的作业的编号  COMMIT;  
END;  
/

4. 查询作业(查)

DBMS_JOB没有直接提供查询作业信息的函数,但你可以查询USER_JOBSDBA_JOBSALL_JOBS视图来获取作业信息。

SELECT job, log_user, priv_user, what, next_date, interval  
FROM user_jobs;

或者,如果你有足够的权限,可以查询DBA_JOBSALL_JOBS视图来获取更多信息。

替代方案:DBMS_SCHEDULER

由于DBMS_SCHEDULER提供了更强大的功能,包括更灵活的调度、更详细的日志记录、更强大的异常处理机制等,强烈建议在新的项目中使用DBMS_SCHEDULER来替代DBMS_JOB

例如,使用DBMS_SCHEDULER创建作业的语法大致如下:

BEGIN  DBMS_SCHEDULER.CREATE_JOB (  job_name        => 'my_new_job',  job_type        => 'PLSQL_BLOCK',  job_action      => 'BEGIN your_procedure; END;',  start_date      => SYSTIMESTAMP,  repeat_interval => 'FREQ=DAILY; BYHOUR=23; BYMINUTE=0; BYSECOND=0',  enabled         => TRUE,  comments        => 'My daily job');  
END;  
/

这将创建一个每天午夜执行的作业。


http://www.ppmy.cn/server/111699.html

相关文章

PhpStorm 下调试功能配置

调试是开发过程中的关键环节,能够极大地减少应用程序中的错误并提高代码质量。PhpStorm 作为一款功能强大的 IDE,提供了丰富的调试功能,结合 Xdebug,可以让开发者更轻松地进行 PHP 应用程序的调试。本指南将详细介绍如何在 PhpSto…

【开源大模型生态3】生产效率的新提升

如上图,人类文明演进依次走过了原始时代、农业时代、工业时代、信息时代、数字时代,到今天的数智时代,每个时代的代表性生产工具都不同。所有生产工具反映的都是生产效率的提升能力。数字时代的云、网、端、芯、链等数字工具,除了…

【STM32+HAL库】---- 通用定时器实现外部脉冲计数

硬件开发板:STM32G0B1RET6 软件平台:cubemaxkeilVScode1 新建cubemax工程 1.1 配置系统时钟RCC 1.2 配置定时器 选择通用定时器TIM2,时钟源选择ETR2,对应的输入端口为PA0引脚,预分频系数为0,重装载值选择…

vue大屏可视化:4k带鱼屏、4k、2k、1920*1080、笔记本 全适配方案

本方案采用的是媒体查询的方法来实现的 css媒体查询书写(可按照自己需求新增)不同尺寸下显示不同的文字大小图片大小等: // 4K 带鱼屏 media screen and (max-width: 3840px) and (max-height: 1080px) {} // 4K media screen and (max-widt…

【王树森】Transformer模型(2/2): 从Attention层到Transformer网络(个人向笔记)

Single Head Self-Attention 上节课讲到的属于单头注意力: Multi-Head Self-Attention 使用 l l l 个单头注意力层堆叠成一个多头注意力层,注意它们之间不共享参数一个单头注意力有 3 个参数矩阵,所以多头注意力有 3 l 3l 3l 个参数矩阵…

C++新手知识点

数据类型 : int , long long , float ,double , char , bool sizeof(n) 求字节空间大小 int 有效位 > 10位 long long 有效位 > 19位 - * / 整数的除法>结果一定是整数 % 求余数 小数没有办法直接求余数 求一个数字的各个位 a123 a/1%10 …

JavaEE-传输层协议

目录 一、UDP协议 二、TCP协议 TCP报文结构 TCP十大核心机制 确认应答 超时重传 接收缓冲区 连接管理 建立连接 断开连接 一、UDP协议 学习一个网络协议首先要学习报文结构。 对于UDP协议来说,应用层数据到达UDP后就会给应用层数据加上UDP报头。 &#…

虚拟主机和云服务器有什么区别?区别大了

阿里云虚拟主机和云服务器有什么区别?云服务器和虚拟主机哪个好?云服务器更好!二者的区别太大了,云服务器相比虚拟主机拥有更多权限,虚拟主机主要用于搭建网站,虚拟主机预装了建站ASP、PHP、HTML和数据库所…