创建

-- 创建定时任务
DECLARE
jobno NUMBER;
BEGIN
dbms_job.submit (   
jobno, -- 定时器ID,系统自动获得
'PRC_INSERT;', -- what执行的过程名,多个存储过程以";"分隔,末尾要带";"
SYSDATE, -- next_date,定时器开始执行的时间,这样写表示立即执行
'sysdate + 15/1440' -- interval,设置定时器执行的频率,这样写每隔15分钟执行一次
);
COMMIT;
END;

查看

-- 查询定时任务(包括定时任务号)
select dj.job, dj.what, dj.last_date, dj.next_date
from dba_jobs dj
where upper(dj.what) like '%P_SYN_PRODUCT%'
order by dj.NEXT_DATE asc; -- 查看正在执行的调度任务
select * from dba_jobs_running;
-- 有权限访问的定时任务
select job, what, last_date, next_date
from all_jobs
order by last_date desc;
-- 整个数据库所有定时任务
select job, what, last_date, next_date
from dba_jobs
order by last_date desc; -- 查询执行任务的job 的临界值是多少
select value from v$parameter where name like '%job_queue_processes%';
-- 修改job的临界值
alter system set job_queue_processes =100;

删除

-- 1、删除定时任务的存储过程
BEGIN
-- 210为job的id,此id不是随便填写的,而是执行select * from user_jobs;
-- 查询到定时任务名称对应的id
dbms_job.remove(210);
commit;
END;
-- 2、也可以使用以下删除方式
-- 删除一个定时器
call dbms_job.remove(83);

修改

-- 3、停止一个定时器
call DBMS_JOB.BROKEN(83, SYS.DIUTIL.INT_TO_BOOL(1));
-- 停止job:
call DBMS_JOB.broken(job, broken, nextdate); –- broken为boolean值
-- 启动一个定时器
call DBMS_JOB.run(83); -- 修改字段 what
call dbms_job.what(job, what);
-- 修改字段 next_date
call dbms_job.next_date(job, next_date);
-- 修改字段 interval
call dbms_job.interval(job, interval);

常见 interval 设置


每天午夜12点 TRUNC(SYSDATE + 1)
每天早上8点30分 TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)
每星期二中午12点 NEXT_DAY(TRUNC(SYSDATE ), '星期二' ) + 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, '星期六'), NEXT_DAY(SYSDATE, "星期日"))) + (6×60+10)/(24×60) 每秒钟执行次 sysdate + 1/(24 * 60 * 60)
如果改成sysdate + 10/(24 * 60 * 60)就是10秒钟执行次 每分钟执行 TRUNC(sysdate,'mi') + 1/ (24*60)
如果改成TRUNC(sysdate,'mi') + 10/ (24*60) 就是每10分钟执行次 每天定时执行
例如:每天的凌晨1点执行
TRUNC(sysdate) + 1 +1/ (24) 每周定时执行
例如:每周一凌晨1点执行
TRUNC(next_day(sysdate,'星期一'))+1/24 每月定时执行
例如:每月1日凌晨1点执行
TRUNC(LAST_DAY(SYSDATE))+1+1/24 每季度定时执行
例如每季度的第一天凌晨1点执行
TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24 每半年定时执行
例如:每年7月1日和1月1日凌晨1点
ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 每年定时执行
例如:每年1月1日凌晨1点执行
ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

PLSQL操作

参考:

https://blog.csdn.net/www1056481167/article/details/84637674

https://www.cnblogs.com/leihongnu/p/15378805.html

https://www.cnblogs.com/yx007/p/6519544.html

Oracle 定时任务增删改查的更多相关文章

  1. mvc模式jsp+servel+dbutils oracle基本增删改查demo

    mvc模式jsp+servel+dbutils oracle基本增删改查demo 下载地址

  2. mvc模式jsp+servel+jdbc oracle基本增删改查demo

    mvc模式jsp+servel+jdbc oracle基本增删改查demo 下载地址

  3. web项目总结——通过jsp+servlet实现对oracle的增删改查功能

    1.DAO模式 分包:依次建立 entity:实体包,放的是跟oracle数据库中表结构相对应的对象的属性,也就是这个对象有什么 dao:增删改查接口,实现增删改查的具体方法 service:同dao ...

  4. ASP.NET C# 连接 Oracle数据库增删改查,事务

    一.知识介绍 ①ASP.NET 使用的是MVC模式,开发工具Visual studio ,语言C# ②Oracle是比较重型的数据库,这里主要介绍连接数据库,对数据进行具体的使用 ③Visual St ...

  5. JDBC概述及JDBC完成对Oracle的增删改查

    什么是JDBC JDBC(Java Data Base Connectivity,Java数据库连接),是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问.它由一组用Java语言 ...

  6. oracle总结--增删改查

    oracle的执行计划SQL> EXPLAIN PLAN FOR SELECT * FROM emp;已解释.SQL> SELECT plan_table_output FROM TABL ...

  7. Mybatis连接Oracle实现增删改查实践

    1. 首先要在项目中增加Mybatis和Oracle的Jar文件 这里我使用的版本为ojdbc7 Mybatis版本为:3.2.4 2. 在Oracle中创建User表 create table T_ ...

  8. C# 连接 Oracle数据库增删改查,事务

    一. 前情提要 一般.NET环境连接Oracle数据库,是通过 TNS/SQL.NET 配置文件,而 TNS 必须要 Oracle 客户端(如果连接的是服务器的数据库,本地还要装一个 client , ...

  9. 【转】mybatis连接Oracle做增删改查

    原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475 入门请看http://blog.csdn.NET/liumengchen ...

随机推荐

  1. 论文解读(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》

    Paper Information 论文作者:Zhen Peng.Wenbing Huang.Minnan Luo.Q. Zheng.Yu Rong.Tingyang Xu.Junzhou Huang ...

  2. webapi_2 今天全是大经典案例

    今天的案例又大又经典 我想想怎么搞呢因为要用到外联样式之类的了 写入内联也太大了 1. 先来一个单独小页面的吧 一个仿淘宝右侧侧边栏的案例 不多说都在注释里了 <!DOCTYPE html> ...

  3. Vue-Router在当前UR不刷新的Debug调试

    如果使用vue-router在当前页面刷新,则会中断此操作,没有反应,错误信息是: Error: Avoided redundant navigation to current location: & ...

  4. 为什么 wait 和 notify 方法要在同步块中调用?

    Java API 强制要求这样做,如果你不这么做,你的代码会抛出 IllegalMonitorStateException 异常.还有一个原因是为了避免 wait 和 notify 之间产生竞态条件.

  5. memcached 与 redis 的区别?

    1.Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储.而 memcache 只支持简单数据类型,需要客户端自己处理复 杂对象 2.R ...

  6. java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?重写跟重载的区别?

    java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况.与此相对,方法覆盖是说子类重新定义了父类的方法.方法覆盖必须有相同的方法名,参数列表和返回类型. 覆盖者可能不会限 ...

  7. DSP选型

    DSP芯片也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器具,其主机应用是实时快速地实现各种数字信号处理算法.根据数字信号处理的要求,DSP芯片一般具有如下主要特点: (1)在一个指 ...

  8. 前端规范(ES6BEMOOCSSSMACSS)

    前端规范 在实际开发中,由于团队成员编码习惯不一,技术层次不同,开发前定制并遵循一种代码规范能提高代码质量,增加开发效率. Javascript Javascript规范直接参考airbnb: ES6 ...

  9. 前端面试题整理——关于EventLoop(1)

    下面代码输出打印值顺序: async function async1(){ console.log('async1 start'); await async2(); console.log('asyn ...

  10. new String比字符串池浪费空间,为什么要用它?

    对于下面程序中:ss0 = new String( "hello" );是用new()来新建对象的,存于堆中.每调用一次就会创建一个新的对象.当然从节省空间的角度来讲,肯定不如st ...