当前位置: 首页 > news >正文

ORACLE JOB

 

 包含以下子过程:
  
  Broken()过程。
  change()过程。
  Interval()过程。
  Isubmit()过程。
  Next_Date()过程。
  Remove()过程。
  Run()过程。
  Submit()过程。
  User_Export()过程。
  What()过程。
  
  1、Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。
  这个过程有三个参数:job 、broken与next_date。
  
  PROCEDURE Broken (job    IN binary_integer,
           Broken  IN boolean,
           next_date IN date :=SYSDATE)
  
  job参数是工作号,它在问题中唯一标识工作。
  broken参数指示此工作是否将标记为破——TRUE说明此工作将标记为破,而FLASE说明此工作将标记为未破。
  next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。
  job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将被标记为broken重新启动状态为broken的job,有如下两种方式;
  a、利用dbms_job.run()立即执行该job
    sql>begin
    sql>dbms_job.run(:jobno) 该jobno为submit过程提交时返回的job number
    sql>end;
    sql>/
  b、利用dbms_job.broken()重新将broken标记为false
    sql>begin
    sql>dbms_job.broken (:job,false,next_date)
    sql>end;
    sql>/
  2、Change()过程用来改变指定工作的设置。
  这个过程有四个参数:job、what 、next_date与interval。
  
  PROCEDURE Change (job    IN binary_integer,
           What    IN varchar2,
           next_date IN date,
           interval  IN varchar2)
  
  此job参数是一个整数值,它唯一标识此工作。
  What参数是由此工作运行的一块PL/SQL代码块。
  next_date参数指示何时此工作将被执行。
  interval参数指示一个工作重执行的频度。
  
  3、Interval()过程用来显式地设置重执行一个工作之间的时间间隔数。这个过程有两个参数:job与interval。
  
  PROCEDURE Interval (job   IN binary_integer,
            Interval IN varchar2)
  
  job参数标识一个特定的工作。interval参数指示一个工作重执行的频度。
  
  4、ISubmit()过程用来用特定的工作号提交一个工作。这个过程有五个参数:job、what、next_date、interval与no_parse。
  
  PROCEDURE ISubmit (job    IN binary_ineger,
            What   IN varchar2,
            next_date IN date,
            interval IN varchar2,
            no_parse IN booean:=FALSE)
  
  这个过程与Submit()过程的唯一区别在于此job参数作为IN型参数传递且包括一个由开发者提供的工作号。如果提供的工作号已被使用,将产生一个错误。
  
  5、Next_Date()过程用来显式地设定一个工作的执行时间。这个过程接收两个参数:job与next_date。
  
  PROCEDURE Next_Date(job     IN binary_ineger,
            next_date  IN date)
  job标识一个已存在的工作。next_date参数指示了此工作应被执行的日期与时间。
  
  6、Remove()过程来删除一个已计划运行的工作。这个过程接收一个参数:
  
  PROCEDURE Remove(job IN binary_ineger);
  
  job参数唯一地标识一个工作。这个参数的值是由为此工作调用Submit()过程返回的job参数的值。已正在运行的工作不能由调用过程序删除。
  
  7、Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
  
  PROCEDURE Run(job IN binary_ineger)
  
  job参数标识将被立即执行的工作。
  
  8、使用Submit()过程,工作被正常地计划好。
  这个过程有五个参数:job、what、next_date、interval与no_parse。
  
  PROCEDURE Submit ( job    OUT binary_ineger,
            What   IN varchar2,
            next_date IN date,
            interval IN varchar2,
            no_parse IN booean:=FALSE)
  
  job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
  what参数是将被执行的PL/SQL代码块。
  next_date参数指识何时将运行这个工作。
  interval参数何时这个工作将被重执行。
  no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。
  
  9、User_Export()过程返回一个命令,此命令用来安排一个存在的工作以便此工作能重新提交。
  此程序有两个参数:job与my_call。
  
  PROCEDURE User_Export(job    IN binary_ineger,
             my_call  IN OUT varchar2)
  
  job参数标识一个安排了的工作。my_call参数包含在它的当前状态重新提交此工作所需要的正文。
  
  10、What()过程应许在工作执行时重新设置此正在运行的命令。这个过程接收两个参数:job与what。
  
  PROCEDURE What (job IN binary_ineger,
          What IN OUT varchar2)
  job参数标识一个存在的工作。what参数指示将被执行的新的PL/SQL代码

 

 

 

  创建测试表
  SQL> create table sys_test(test_date date);
  
  表已创建。
  
  创建一个自定义过程
  SQL> create or replace procedure PROC_TEST as
   2 begin
   3 insert into sys_test values(sysdate);
   4 end;
   5 /
  
  过程已创建。
  
  创建JOB
  SQL> variable job1 number;
  SQL>
  SQL> begin
   2 dbms_job.submit(:job1,'PROC_TEST;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
   3 end;
   4 /
  
  PL/SQL 过程已成功完成。
  
  运行JOB
  SQL> begin
   2 dbms_job.run(:job1);
   3 end;
   4 /
  
  PL/SQL 过程已成功完成。
  
  SQL> select to_char(test_date,'yyyy-mm-dd hh24:mi:ss') 时间 from sys_test;
  
  时间
  -------------------
  2011-07-29 23:51:21
  2011-07-29 23:52:22
  2011-07-29 23:53:24
  
  删除JOB
  SQL> begin
   2 dbms_job.remove(:job1);
   3 end;
   4 /
  
  PL/SQL 过程已成功完成。

declare   
  jobno number;   
 begin   
 dbms_job.submit(
   jobno,
   'p_dosomething;',  --what
    to_date('20090101020000','yyyy-mm-dd hh24:mi:ss'),--next_date,可以不填
     'Interval时间字符串'--interval,关键设置
   );   
  commit;   
end; 

 

1、 每分钟执行

Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)

2、 每天定时执行

例如:每天的凌晨2点执行

Interval => TRUNC(sysdate) + 1 +2 / (24)

3、 每周定时执行

例如:每周一凌晨2点执行

Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天

4、 每月定时执行

例如:每月1日凌晨2点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24

5、 每季度定时执行

例如每季度的第一天凌晨2点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24

6、 每半年定时执行

例如:每年71日和11日凌晨2

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24

7、 每年定时执行

例如:每年11日凌晨2点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

 

 

 

 

转载于:https://www.cnblogs.com/umlzhang/archive/2011/07/29/2121516.html

相关文章:

  • C# with 关键字
  • android模拟器环境选择媒体文件,解决No media found (转)
  • 可能改变世界的13个“终结”(上)
  • UiModeManager设置夜间模式和行车模式
  • 一分钟可以用来做什么?
  • 学习pytorch
  • Vue 上传图片压缩 的问题
  • poj2864
  • The following IP can be used to access Google website
  • 配置文件结构
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
  • 乱七八糟记一下乱七八糟的碎片化知识
  • 虚拟内存可以取消吗
  • js中bind、call、apply函数的用法
  • iBatis把一个表的sqlmap配置的多个xml中。
  • 《Java编程思想》读书笔记-对象导论
  • Angular 响应式表单 基础例子
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • docker python 配置
  • E-HPC支持多队列管理和自动伸缩
  • ES6系列(二)变量的解构赋值
  • ES6语法详解(一)
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • isset在php5.6-和php7.0+的一些差异
  • js学习笔记
  • Laravel Telescope:优雅的应用调试工具
  • Linux Process Manage
  • mysql_config not found
  • Object.assign方法不能实现深复制
  • QQ浏览器x5内核的兼容性问题
  • Solarized Scheme
  • spring security oauth2 password授权模式
  • vue-cli在webpack的配置文件探究
  • 编写符合Python风格的对象
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 经典排序算法及其 Java 实现
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端面试题总结
  • 通过git安装npm私有模块
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • ​虚拟化系列介绍(十)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)bark-ml
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (31)对象的克隆
  • (C++17) std算法之执行策略 execution
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (poj1.3.2)1791(构造法模拟)
  • (第27天)Oracle 数据泵转换分区表
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking