虚谷数据库-定时作业

虚谷数据库提供定时作业机制,用于定时、定期、自动的进行某些操作,可通过系统包 dbms_scheduler 进行定时作业创建、调度、查看、删除等。

DBMS_SCHEDULER 系统包封装了以下过程/函数:ENABLE、DISABLE、SET_JOB_ARGUMENT_VALUE、DROP_JOB、RUN_JOB。

过程/函数含义如下:

DBMS_SCHEDULER.ENABLE(job_name):表示启用作业。 DBMS_SCHEDULER.DISABLE(job_name,TURE):表示禁用作业。 DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(job_name,param_order,param_val):表示对 job 调用存储过程进行参数赋值,param_order 为参数序,param_val 为参数值。 DBMS_SCHEDULER.RUN_JOB(job_name,TRUE):表示显式调用定时作业。 DBMS_SCHEDULER.DROP_JOB(job_name,TRUE):表示删除定时作业。

1、作业的创建

语法格式

DBMS_SCHEDULER.CREATE_JOB (job_name             IN VARCHAR2,job_type             IN VARCHAR2,job_action           IN VARCHAR2,number_of_arguments  IN PLS_INTEGER              DEFAULT 0,start_date           IN TIMESTAMP                DEFAULT NULL,repeat_interval      IN VARCHAR2                 DEFAULT NULL,end_date             IN TIMESTAMP                 DEFAULT NULL,job_class            IN VARCHAR2                 DEFAULT 'DEFAULT_JOB_CLASS',enabled              IN BOOLEAN                  DEFAULT FALSE,auto_drop            IN BOOLEAN                  DEFAULT TRUE,comments             IN VARCHAR2                 DEFAULT NULL);

参数解释:

  • job_name:作业名称。
  • job_type:作业类型,可指定为stored_procedure、plsql_block或plsql_command;若为stored_procedure则job_action内容为数据库存储过程名称;若为plsql_block则job_action为可执行块语句;若为plsql_command则job_action可调用包中的存储过程或存储函数。
  • job_action:作业动作,与job_type相关。
  • number_of_arguments:作业中存储过程、存储函数或包的参数个数。
  • start_date:作业开始时间。
  • repeat_interval:作业重复间隔说明。
  • end_date:作业结束时间。
  • job_class:作业类型——该参数暂时无效,预留。
  • enabled:作业是否已激活,若该参数置为true则表示该作业默认为启用状态,作业根据其计划自动运行,若该参数置为false则该作业为禁用状态,不会自动执行,需手动执行作业或将该作业启用后方可自动执行。
  • auto_drop:作业执行完是否自动删除。若该参数置为true则在作业完成后将自动删除作业,反之不会删除该作业。
  • comments:作业备注说明。

参数说明:

  • repeat_interval结构为REPEAT_INTERVAL=>’Freq=Minutely;Interval=5’ Freq关键字用于指定作业间隔的时间周期,可选参数包括:YEARLY(年)、MONTHLY(月)、WEEKLY(周)、DAILY(日)、HOURLY(小时)、MINUTELY(分)、SECONDLY(秒)。
  • Interval关键字用于指定作业间隔频度,该值为一个整数,默认为1,可指定范围为1-999。
  • repeat_interval参数除了以上两个限制条件外,还可指定:
    • BYHOUR:指示定时作业在指定小时执行,可指定范围 0-23,若要指定多个时间参数使用逗号进行分割,如BYHOUR=2,5,7。
    • BYDAY:指示在每周的第几天运行,可使用数字或英文缩写,如:MON|TUE|WED|THU|FRI|SAT|SUN等。
    • BYMONTHDAY:指示在每月的第几天运行。
    • BYMONTH:指示在每年的月份,可使用数字或英文缩写,如:JAN|FEB|MAR|APR|MAY|JUN等。

示例1

基于存储过程的定时作业。

CREATE TABLE JOB_TEST(ID INT,DT DATETIME);CREATE OR REPLACE PROCEDURE JOB_PROC1(INPUT INTEGER) IS
BEGININSERT INTO JOB_TEST VALUES (INPUT, SYSDATE);
END;EXEC dbms_scheduler.create_job('job1','stored_procedure','JOB_PROC1',1,sysdate,'freq=secondly;INTERVAL=30;byhour=5,14;','2029-01-01 01:00:00','default_class',FALSE,TRUE,'这是一个测试');

示例2
基于PLSQL块语句的定时作业

EXEC dbms_scheduler.create_job('job2','plsql_block','DECLARE BEGIN FOR i IN 1..10 LOOP INSERT INTO JOB_TEST VALUES(i,sysdate);END LOOP;END;',0,sysdate,'freq=secondly;INTERVAL=30;byhour=5,14;','2029-01-01 01:00:00','default_class',FALSE,TRUE,'这是一个测试');

2、过程/函数的使用

(1)DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE

DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE该过程用于设置作业的参数信息。可通过位置绑定参数也可以通过参数名称绑定参数。

语法格式

-- argument_value支持VARCHAR2、TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、NUMERIC、BOOLEAN、TIME、DATE、DATETIME数据类型,此处语法仅列出VARCHAR2类型作为参考。DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (job_name               IN VARCHAR2,argument_position      IN PLS_INTEGER,argument_value         IN VARCHAR2);DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (job_name               IN VARCHAR2,argument_name          IN VARCHAR2,argument_value         IN VARCHAR2);

参数解释:

  • job_name:需要设置参数的作业名称。
  • argument_position:需要设置参数值的参数位置。
  • argument_name:需要设置参数值的参数名称。
  • argument_value:设置的参数值,该处根据参数值类型自动选择重载的存储过程。

示例:

SET_JOB_ARGUMENT_VALUE
BEGINDBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(job_name        => 'job1',argument_name   => 'INPUT',argument_value  => 100);
END;
/


上面这个示例是使用 ​DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE​ 过程来更新名为 ​job1​ 的作业的参数 ​INPUT​ 的值为 ​100​。

(2)SET_ATTRIBUTE

​DBMS_SCHEDULER.SET_ATTRIBUTE​ 该存储过程用于修改定时作业属性值,而不是参数。如果你想修改作业的某些属性,例如作业的名称、作业的开始时间、作业的结束时间等,你可以使用​SET_ATTRIBUTE​。

语法格式如下:

DBMS_SCHEDULER.SET_ATTRIBUTE (name           IN VARCHAR2,attribute      IN VARCHAR2,value          IN {VARCHAR2 | TIMESTAMP | PLS_INTEGER | BOOLEAN});

参数解释:

  • name:需要修改属性的作业名称。
  • attribute:需要修改的属性名称。
  • value:修改的属性对应的新值,该参数可接受VARCHAR2、TIMESTAMP、PLS_INTEGER、BOOLEAN数据类型的值。

示例:

BEGINDBMS_SCHEDULER.SET_ATTRIBUTE(name => 'job1',attribute => 'repeat_interval',value => 'freq=secondly;INTERVAL=15;byhour=5,14;');
END;
/


在这个例子中,展示了如何使用 ​SET_ATTRIBUTE​ 来修改作业的间隔时间,我们将 ​job1​ 作业的重复间隔从原来的 ​30​ 秒修改为 ​15​ 秒,并且保持 ​byhour​ 属性为 ​5,14​,这意味着作业将在每天的 ​5​ 点和 ​14​ 点执行。


(3)RUN_JOB

RUN_JOB该存储过程用于显式调用作业

语法格式如下:

DBMS_SCHEDULER.RUN_JOB (job_name                IN VARCHAR2,use_current_session     IN BOOLEAN DEFAULT TRUE);

参数解释:

  • job_name:调用的作业名称。
  • use_current_session:参数选用true时表示使用当前会话执行该作业,若作业未执行完成则当前连接会话一直处于阻塞状态直至作业完成后方可执行其他SQL;若参数选用false则表示使用其他会话执行该作业,当前会话可继续执行其他SQL。

示例:

BEGINDBMS_SCHEDULER.RUN_JOB(job_name => 'job1');
END;
/


DBMS_SCHEDULER.RUN_JOB​ 函数被调用来立即运行名为 ​job1​ 的作业。这个函数会立即触发作业的执行,即使作业的计划时间还没有到达。

(4)ENABLE、DISABLE

ENABLE存储过程用于启用作业,将作业是否启用属性设置为true,然后作业根据其开始时间、结束时间和间隔时间自动运行作业。
DISABLE存储过程用于禁用作业同ENABLE作用相反。

语法格式如下:

DBMS_SCHEDULER.ENABLE (name                  IN VARCHAR2);DBMS_SCHEDULER.DISABLE (name                  IN VARCHAR2,force                 IN BOOLEAN DEFAULT FALSE);

参数解释:

  • name:禁用或启用的作业名称。
  • force:如果设置为true则需先停止正在运行的作业实例,再禁用作业;如果设置为false则允许正在运行的作业执行完成,然后再禁用作业。

示例:

--enable启用作业
BEGINDBMS_SCHEDULER.ENABLE(name => 'job1');
END;
/--disable禁用作业
BEGINDBMS_SCHEDULER.DISABLE(name => 'job1');
END;
/

在这两个例子中,​name => 'job1'​ 参数指定了要启用或禁用的作业的名称。执行 ​DBMS_SCHEDULER.ENABLE​ 后,作业将开始按照其计划运行。执行 ​DBMS_SCHEDULER.DISABLE​ 后,作业将停止运行,直到再次被启用

(5)DROP_JOB

DROP_JOB该存储过程用于删除作业。

语法格式如下:

DBMS_SCHEDULER.DROP_JOB (job_name               IN VARCHAR2,force                  IN BOOLEAN DEFAULT FALSE);

参数解释:

  • job_name:删除的作业名称。
  • force:如果设置为true则需先停止正在运行的作业实例,再删除作业;如果设置为false则允许正在运行的作业执行完成,然后再删除这些作业。

示例:


BEGINDBMS_SCHEDULER.DROP_JOB(job_name => 'job1');
END;
/


在这个例子中,​job_name => 'job1'​ 参数指定了要删除的作业的名称。执行 ​DBMS_SCHEDULER.DROP_JOB​ 后,名为 ​job1​ 的作业将从数据库中被永久删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

swift微调牧歌数据电商多模态大语言模型

大规模中文多模态评测基准MUGE_数据集-阿里云天池多模态理解和生成评估挑战榜(MUGE)是由阿里巴巴达摩院智能计算实验室发起,由阿里云天池平台承办,并由浙江大学、清华大学等单位共同协办。 Mhttps://tianchi.aliyun.com/dataset/107332微调的是牧歌数据集,结果都不好,记录…

JDBC简介

JDBC最基本的知识点要求理解并会使用下边的两个案例即可: 前言: Jdbc操作步骤简析: 1.Connection connDriverManager.getConnection(url,账号,密码):用DriverManager类的连接方法根据url账号密码连接数据库&#xf…

中望CAD 2025 (ZW3D2025) 简体中文修改版

名称:中望CAD 2025 (ZW3D2025) 简体中文修改版 描述:一款三维CAD设计工具,运行破解补丁ZW3D2025-2024-Patch执行修补。 链接:夸克网盘分享 📁 大小:3.2GB 🏷 标签:#PC软件 #CAD #设…

支付宝 沙盒demo使用

简介:支付宝沙箱环境是一个为开发者提供的模拟测试环境,用于在应用上线前进行接口功能开发和联调。在这个环境中,开发者可以模拟开放接口,进行开发调试工作,以确保应用上线后能顺利运行。 1. 配置沙盒 1. 1 沙箱控制…

【odoo15】前端自定义模态弹窗

概要 在odoo15或者在15之前,odoo前端的owl框架还没完全替换当前前端框架的时候,我们很多时候都是用js或者jq来直接操作dom,那么我们如果需要在前端用到一个模态弹窗,可以怎么解决呢? 方法1 直接用js原生的模态弹窗&am…

Oracle的这些BUG你要遇到,说明你是一个DBA老鸟...

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

采用卷积神经网络分类MNIST数据集与基础知识

卷积神经网络 (CNN) 分类 MNIST 数据集的基础知识 1. MNIST 数据集简介 MNIST(Modified National Institute of Standards and Technology)数据集是一个手写数字的图像数据库,用于机器学习领域中的图像分类任务。它包含60,000张训练图像和10,000张测试图像,图像大小为28x…

WED前端做什么:深度剖析与实用指南

WED前端做什么:深度剖析与实用指南 在当今数字化浪潮中,前端开发已成为互联网领域不可或缺的一部分。WED前端作为其中的关键角色,肩负着构建优质用户体验的重任。那么,WED前端具体做什么呢?本文将从四个方面、五个方面…

39python数据分析numpy基础之h5py读写数组数据到h5文件

1 python数据分析numpy基础之h5py读写数组数据到h5文件 HDF5(分层数据格式文件)是Hierarchical Data Format Version 5的缩写,是一种用于存储和管理大数据的文件格式。经历了20多年的发展,HDF格式的最新版本是HDF5,它包含了数据模型&#xf…

【LVGL】Guider 界面分析

文章目录 前言架构创建 UI切换界面空间释放分析创建页面空间变化 前言 分析Gui Guider-1.7.2-GA 生成的 LVGL 界面切换,资源管理等处理 架构 所有控件存放于同一个结构体 lv_ui 内,每个页面都至少包含 screen_xxx 和 screen_xxx_del 两个成员 typede…

用HAL库改写江科大的stm32入门-7-1 ADC

实验目的:了解ADC基本概念 电路图: ADC(Analog-Digital Converter)模拟-数字转换器,它可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。 实验效果: &#xff0…

【html】学会这一套布局,让你的网页更加

很多小伙伴们在刚刚开始学习网页设计的时候不知道怎么布局今天给大家介绍一种非常实用且更加专业的一种布局。 灵感来源: 小米官网 布局图; 实例效果图: 这是一个简单的HTML模板,包括头部、内容区域和底部。 头部部分包括一个分为左右两部分…

【代码随想录】【算法训练营】【第39天】 [62]不同路径 [63]不同路径II [343]整数拆分 [96]不同的二叉搜索树

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 39,周六,坚持不住了~ 题目详情 [62] 不同路径 题目描述 62 不同路径 解题思路 前提:每次只能向下或者向右移动一步 思路:动态规划&#xff0…

部署LVS-DR群集...

目录 最后一台主机(第四台) 本地yum源安装httpd(非必做) 继续开始从最后一台主机开始(第四台) 转第二台主机 转第三台主机 回第二台 上传 转第三台主机 上传 回第二台 转第三台 转第一台主机…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.5 RTC设备编写与实现

1. 概述 上一章节我们已经在QEMU中添加了RTC设备,本章节我们就把RTC设备给移植进入kernel中运行起来,我们移植的Google goldfish_rtc设备,此IP已经在Linux kernel有了Driver,所以我们直接移植设备树即可。 RTC时钟是用来记录当前系统时间的;对于Linux系统来说,时间是一…

Java 项目学习(初始化项目)

后端工程基于 maven 进行项目构建,并且进行分模块开发 参考:Spring或Spring Boot项目目录结构划分和代码分层 1、了解项目的整体结构 sky-take-out maven 父工程,统一管理依赖版本,聚合其他子模块 sky-common 子模块&#xff0c…

【背包题】oj题库

目录 1282 - 简单背包问题 1780 - 采灵芝 1888 - 多重背包&#xff08;1&#xff09;​编辑 1891 - 开心的金明 2073 - 码头的集装箱 1905 - 混合背包 1282 - 简单背包问题 #include <bits/stdc.h> using namespace std; //二维数组:dp[i][j]max(dp[i-1][j],v[i]dp[…

CSS动画(登录页面)

1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa6Pfop3IiakrZOtiaiaKniaxeH2Gs407DmkXPsMo8AFKdsYibYcpZiboc24Ulic2CicmyvHmnwCrib7MDe6Jvg/640?wx_fmtgif&fromappmsg&tpwebp&wxfrom5&wx_lazy1&wx_co1 2.完整代码 HTML <!DOCTYPE html&g…

Oracle备份失败处理,看这一篇就够了!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

FLAN-T5模型的文本摘要任务

Text Summarization with FLAN-T5 — ROCm Blogs (amd.com) 在这篇博客中&#xff0c;我们展示了如何使用HuggingFace在AMD GPU ROCm系统上对语言模型FLAN-T5进行微调&#xff0c;以执行文本摘要任务。 介绍 FLAN-T5是谷歌发布的一个开源大型语言模型&#xff0c;相较于之前的…