plsql定时器

Oralce中的任务有2种:Job和Dbms_job,两者的区别有:

1.  jobs是oracle数据库的对象, dbms_jobs只是jobs对象的一个实例, 就像对于tables, emp和dept都是表的实例。

2.  创建方式也有差异,Job是通过调用dbms_scheduler.create_job包创建的,Dbms_job则是通过调用dbms_job.submit包创建的。

3.  两种任务的查询视图都分为dba和普通用户的,Job对应的查询视图是dba_scheduler_jobs和user_scheduler_jobs,dbms_jobs对应的查询视图为dba_jobs和user_jobs。

Dbms_job

BEGIN
DBMS_JOB.SUBMIT(JOB OUT BINARY_INTERGER,--输出变量,是此任务在任务队列中的编号,也可以自定义,一般不传WHAT IN VARCHAR2,--执行的任务的名称及其输入参数NEXT_DATE IN DATE DEFAULT SYSDATE,--任务执行的时间INTERVAL IN VARCHAR2 DEFAULT NULL,--任务执行的时间间隔NO_PARSE IN BOOLEAN DEFAULT FALSE,--用于指定是否需要解析与作业相关的过程INSTANCE IN BINARY_INTEGER DEFAULT ANY_INSTANCE,--用于指定哪个例程可以运行作业FORCE IN BOOLEAN DEFAULT FALSE--用于指定是否强制运行与作业相关的例程
);
END
beginsys.dbms_job.submit(job => 1,        --代表的是号码,第几个定时任务what => 'sys_mailing_list_job;',  --这个是调用的你想使用的存储过程切记要打;不然会报错next_date => to_date('20-08-2018 14:05:00', 'dd-mm-yyyy hh24:mi:ss'),      --这个是下次调用的时间 interval => 'trunc(sysdate,''hh'')+(60+5)/(24*60)');commit;    --这个是间隔时间 。我这个代表的是每个小时的过5 比如 1:05,2:05,3:05...24小时的
end;

 

可以使用窗口创建:

 

 

 

2、删除job: dbms_job.remove(jobno); -- jobno任务号 

3、修改要执行的操作: job:dbms_job.what(jobno, what);   --指定任务号以及存储过程

4、修改下次执行时间:dbms_job.next_date(jobno, next_date);  --指定任务号的时间

5、修改间隔时间:dbms_job.interval(jobno, interval);   --指定任务号的间隔时间

6、改变与作业相关的所有信息,包括作业操作,作业运行日期以及运行时间间隔等.

 

1 dbms_job.change(
2   job in binary_integer,
3   what in varchar2,
4   next_date in date,
5   interval in varchar2,
6   instance in binary_integer default null,
7   force in boolean default false
8 );

 

例子:dbms_job.change(2,null,null,'sysdate+2');

6、启动job: dbms_job.run(jobno);    --指定任务号启动

7、停止job: dbms.broken(jobno, broken, nextdate); –broken为boolean值 N代表启动,Y代表没启动(STOP)

Interval 说明

间隔/interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。

 

(1)每分钟执行

Interval => TRUNC(sysdate,'mi') + 1/ (24*60) –或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

 

四、DBA_JOBS 和 USER_JOBS.字典视图的字段含义

 

字段(列)

类型

描述

JOB

NUMBER

任务的唯一标示号

LOG_USER

VARCHAR2(30)

提交任务的用户

PRIV_USER

VARCHAR2(30)

赋予任务权限的用户

SCHEMA_USER

VARCHAR2(30)

对任务作语法分析的用户模式

LAST_DATE

DATE

最后一次成功运行任务的时间

LAST_SEC

VARCHAR2(8)

如HH24:MM:SS格式的last_date日期的小时,分钟和秒

THIS_DATE

DATE

正在运行任务的开始时间,如果没有运行任务则为null

THIS_SEC

VARCHAR2(8)

如HH24:MM:SS格式的this_date日期的小时,分钟和秒

NEXT_DATE

DATE

下一次定时运行任务的时间

NEXT_SEC

VARCHAR2(8)

如HH24:MM:SS格式的next_date日期的小时,分钟和秒

TOTAL_TIME

NUMBER

该任务运行所需要的总时间,单位为秒

BROKEN

VARCHAR2(1)

标志参数,Y标示任务中断,以后不会运行

INTERVAL

VARCHAR2(200)

用于计算下一运行时间的表达式

FAILURES

NUMBER

任务运行连续没有成功的次数

WHAT

VARCHAR2(2000)

执行任务的PL/SQL块

CURRENT_SESSION_LABEL

RAW MLSLABEL

该任务的信任Oracle会话符

CLEARANCE_HI

RAW MLSLABEL

该任务可信任的Oracle最大间隙

CLEARANCE_LO

RAW MLSLABEL

该任务可信任的Oracle最小间隙

NLS_ENV

VARCHAR2(2000)

任务运行的NLS会话设置

MISC_ENV

RAW(32)

任务运行的其他一些会话参数

 

 

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

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

相关文章

PL/SQL批处理语句:BULK COLLECT 和 FORALL

PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销 请看下图: 但是,FORALL和BULK COLLEC…

redis-full-check

https://github.com/alibaba/RedisFullCheck/releases redis-full-check是阿里云Redis&MongoDB团队开源的用于校验2个redis数据是否一致的工具。   redis-full-check通过全量对比源端和目的端的redis中的数据的方式来进行数据校验,其比较方式通过多轮次比较&a…

Docker目录挂载

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定: # docker run -it -v /test:/soft centos /bin/ba…

Redis主从复制原理学习

Redis主从复制原理学习总结 - 运维笔记 和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构&#xff…

Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)

Redis的集群方案大致有三种:1)redis cluster集群方案;2)master/slave主从方案;3)哨兵模式来进行主从替换以及故障恢复。 一、sentinel哨兵模式介绍 Sentinel(哨兵)是用于监控redis集群中Master状态的工具&…

Redis之Redis内存模型

Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合&…

Redis监控指标

监控指标 •性能指标:Performance•内存指标: Memory•基本活动指标:Basic activity•持久性指标: Persistence•错误指标:Error 性能指标:Performance NameDescriptionlatencyRedis响应一个请求的时间instantaneous_ops_per_s…

MHA高可用

manager 组件 masterha_manger # 启动MHA masterha_check_ssh # 检查MHA的SSH配置状况 masterha_check_repl # 检查MySQL复制状况,配置信息 masterha_master_monitor # 检测master是否宕机 masterha_check_status # 检测当…

MySQL Replication需要注意的问题

主库意外宕机 如果没有设置主库的sync_binlog选项,就可能在奔溃前没有将最后的几个二进制日志事件刷新到磁盘中。备库I/O线程因此也可一直处于读不到尚未写入磁盘的事件的状态中。当主库从新启动时,备库将重连到主库并再次尝试去读该事件,但…

update和delete操作忘加where条件导致全表更新的处理方法

在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽。最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者DBA的我们改如何处理…

Innodb结构

从MySQL5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩满恢复的特性,在日常开发中使用非常广泛,下面是言方的InnoDB引擎美构图,主要分为内存结构和磁盘结构两大部分。 内存结构主要包括Buffer Pool、C…

innodb_flush_method理解【转】

innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的: 有三个值:fdatasync(默认),O_DSYNC,O_DIRECT 默认是fdatasync,调用fsync()去…

Docker容器间网络通信

自从Docker容器出现以来,容器网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器网络通信又分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。 一、Docker单主机容器通信 基于对net namespace的控制&#…

k8s二进制安装

1. 前言 之前文章安装 kubernetes 集群,都是使用 kubeadm 安装,然鹅很多公司也采用二进制方式搭建集群。这篇文章主要讲解,如何采用二进制包来搭建完整的高可用集群。相比使用 kubeadm 搭建,二进制搭建要繁琐很多,需要…

ELK学习笔记之Logstash详解

0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时…

k8---proxy

kube-proxy 通过 Informer知道了Service、endpoints对象的创建,然后把service身上的CLUSTER-IP 和端口已经端点信息拿出来,创建iptable NAT规则做转发或通过ipvs模块创建VS服务器,这样经过CLUSTER-IP的流量都被转发到后端pod。 iptables模式 …

logstash密码设置步骤

生成密钥存储仓库 cd /app/logstash-6.8.4/bin/ ./logstash-keystore create 输入y 添加Logstash中可引用的变量 ./logstash-keystore add es_user 输入elastic ./logstash-keystore add es_pwd 输入bamBoo123 ./logstash-keystore add kafka_pwd 输入bamBoo123 ./logstash…

pycharm 自动补全括号 引号

过程&#xff1a; File->settings->Editior->General->Smart Keys 勾选Insert paired barckets(),[],{},<>

IndexError: list index out of range image_name=self.images_name[index]

这里是引用 def __len__(self):return len(self.images_name) 注意这个地方

Anaconda如何重新在开始菜单显示

步骤&#xff1a; &#xff08;1&#xff09; win R &#xff0c;然后输入Cmd 进入电脑命令端 &#xff08;2&#xff09;cd 进入anaconda 安装的路径&#xff0c;然后 输入 、、、 python .\Lib_nsis.py mkmenus 、、、 然后就OK了