Oracle定时计划快速使用

前言:

SQL Server中有相关的定时计划,可以直接打开sql server 的任务管理器进行配置,可以方便、快速实现定时执行相应任务。相应的Oracle也有对应的定时计划,只不过没有一个很好的图形界面供用户去操作。本文主要是为了方便用户在Oracle中快速创建定时计划,定期执行相应的sql或者存储过程。

1.   创建定时计划

说明:以下所有的示例代码,都需要用户先连上sql/plus之后,在sql/plus中执行。

1.1      创建存储过程

存储过程不是必须的,只不过是把相关的一系列的sql语句整合在一块,方便执行。

示例:

create or replace procedure update_black_gray_list as

begin

UPDATE SMS_BLACKLIST //要执行的sql语句

SET FLAG='0',"ENABLE"='2',

FDATE=TO_DATE(TO_DATE(TO_CHAR(SYSDATE, 'yyyy-mm-dd'), 'yyyy-mm-dd')),

TDATE=TO_DATE(TO_DATE(TO_CHAR(SYSDATE+7, 'yyyy-mm-dd'), 'yyyy-mm-dd'))

WHERE FLAG='0' AND "ENABLE"='0' AND

TDATE<TO_DATE(TO_DATE(TO_CHAR(SYSDATE, 'yyyy-mm-dd'), 'yyyy-mm-dd'));

end;

/

1.2      创建定时计划

示例:

variable update_list_job number;

begin

dbms_job.submit(:update_list_job,'update_black_gray_list;',TRUNC(SYSDATE),'TRUNC(SYSDATE+1)');

end;

/

变量update_list_job是为了存储创建生成的计划的唯一标识号,方便删除,查看该定时计划的相关信息

1.2.1 dbms_job.submit() 说明

PROCEDURE submit (

job  OUT  binary_ineger,

what IN varchar2,

next_date  IN date,

interval IN varchar2,

no_parse IN booean:=FALSE)

这个过程有五个参数:job、what、next_date、interval与no_parse。

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识job

what参数是将被执行的PL/SQL代码块(一般多是存储过程)。

next_date参数指识何时将运行这个工作。

interval参数何时这个工作将被重执行。

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

示例:

每天运行一次 'SYSDATE + 1'

每小时运行一次 'SYSDATE + 1/24'

每分钟运行一次 'SYSDATE + 1/(60*24)'

每秒运行一次 'SYSDATE + 1/(60*24*60)'

每隔一星期运行一次 'SYSDATE + 7'

每天午夜12点 'TRUNC(SYSDATE + 1)'

每天早上1点30分 'TRUNC(SYSDATE + 1) + (1*60+30)/(24*60)'

每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 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,
''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

不再运行该任务并删除它 NULL

no_parse参数指示此工作在提交时或执行时是否应进行语法分析(默认为false——TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。

1.3     
执行定时计划

示例:

begin

dbms_job.run(:update_list_job);

end;

/

1.4     
删除定时计划

示例:

begin

dbms_job.remove(:update_list_job);

end;

/

2.  
查看所有定时计划

select  *  from  user_jobs;

3.  
删除定时计划

3.1 删除所有定时计划

begin

for v in(select job from user_jobs) loop
    dbms_job.remove(v.job);
  end loop;
  commit;

end;

3.2 删除指定内容的定时计划

begin

for v in(select job from user_jobs where what
in( 'the_what_name;' ) )

loop

dbms_job.remove(v.job);

end
loop;

commit;

end;

/

3.3 删除指定用户的定时计划

begin

for v in(select job from user_jobs where
log_user='USERXXXX') loop

dbms_job.remove(v.job);

end loop;

commit;

end;

/

Oracle定时计划快速使用的更多相关文章

  1. (转)Oracle定时执行计划任务

    Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表.每天从数据库中提取符合条件的数据.每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就 ...

  2. 【Oracle】Windows定时计划每天备份数据库

    脚本 OracleBakEveryDay.bat @echo off echo ================================================ echo Window ...

  3. 看懂Oracle执行计划

    最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问 ...

  4. 看懂Oracle执行计划、表连接方式

    看懂Oracle执行计划  原文:https://www.cnblogs.com/Dreamer-1/p/6076440.html 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也 ...

  5. 02 看懂Oracle执行计划

    看懂Oracle执行计划   最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing… 一:什么是Oracle执行计划? 执行计划是一条查询语句在 ...

  6. Oracle调优之看懂Oracle执行计划

    @ 目录 1.文章写作前言简介 2.什么是执行计划? 3.怎么查看执行计划? 4.查看真实执行计划 5.看懂Oracle执行计划 5.1 查看explain 5.2 explain执行顺序 5.3 访 ...

  7. (Oracle)看懂Oracle执行计划(转载)

    最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问 ...

  8. Oracle执行计划详解

    Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介:   ...

  9. 【转】Oracle执行计划解释

    Oracle执行计划解释 一.相关的概念     Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物 ...

随机推荐

  1. MySQL数据库3 - MySQL常用数据类型

    一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的       ---> 数 ...

  2. C#打印条码与ZPL

    ZPL(Zebra Programming Language) 是斑马公司(做条码打印机的公司)自己设计的语言, 由于斑马打印机是如此普遍, 以至于据我所见所知, 条码打印机全部都是斑马的, 所以控制 ...

  3. ubuntu下avd创建和文件传输

    进入安卓官网下载安卓sdk并解压到指定路径 在命令行模式下进入安卓文件的toos文件夹下 android avd #在弹出的对话框中新建虚拟机 adb install ~/targetPath/hel ...

  4. web api 初体验之 GET和POST传参

    上一篇我们讲到了web api跨域的问题 它几乎是每一个用web api的人都需要去解决的问题,不然都没法测试.接下来会遇到的问题就是传参了.还是用js前台调用服务的方式. GET 方式 get方式传 ...

  5. day05 java JDBC案例—Android小白的学习笔记

    1.要从键盘录入用户名与密码我们需要使用Scanner类完成操作 2.接收到用户名与密码后,我们需要调用jdbc程序根据用户名与密码查询数据库 User.java package com.superg ...

  6. 长平狐 Android-x86虚拟机安装配置全攻略

    Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这篇文章能把主要的配置介绍给您,帮助您少走一些弯路. 本文分别针对VMWare和Virtual Box两种虚拟机介绍安装配置 ...

  7. 网络库crash以及boost asio strand dispath分析

    最近在做服务器的稳定性的相关测试,服务器的网络底层使用的是boost asio,然后自己做的二次封装以更好的满足需求. 服务器昨天晚上发现crash了一次,之前测试了将近半个多月,有一次是莫名的退出了 ...

  8. java问题排查可能用到的一些命令

    1. jmap查询jvm内存使用情况 -heap :打印jvm heap的情况 -histo: 打印jvm heap的直方图.其输出信息包括类名,对象数量,对象占用大小. -histo:live : ...

  9. SQL Server 2008 R2 未能加载文件或程序集Microsoft.SqlServer.Sqm...

    错误提示:未能加载文件或程序集“Microsoft.SqlServer.Sqm, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8 ...

  10. 转载《Android Adapter简单总结》

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid View)等地方都需要用到Adapter.如下 ...