知识大全 oracle中job的使用

Posted 过程

篇首语:对于攀登者来说,失掉往昔的足迹并不可惜,迷失了继续前时的危险。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle中job的使用相关的知识,希望对你有一定的参考价值。

  一 设置初始化参数 job_queue_processes

  sql> alter system set job_queue_processes=n;(n> )

  job_queue_processes最大值为

  查看job queue 后台进程

  sql>select name description from v$bgprocess;

  二 dbms_job package 用法介绍

  包含以下子过程

  Broken()过程

  change()过程

  Interval()过程

  Isubmit()过程

  Next_Date()过程

  Remove()过程

  Run()过程

  Submit()过程

  User_Export()过程

  What()过程

   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将重试 次后 还未能成功执行 将被标记为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>/

   Change()过程用来改变指定工作的设置

  这个过程有四个参数 job what next_date与interval

  PROCEDURE Change (job    IN binary_integer

  What    IN varchar

  next_date IN date

  interval  IN varchar )

  此job参数是一个整数值 它唯一标识此工作

  What参数是由此工作运行的一块PL/SQL代码块

  next_date参数指示何时此工作将被执行

  interval参数指示一个工作重执行的频度

   Interval()过程用来显式地设置重执行一个工作之间的时间间隔数 这个过程有两个参数 job与interval

  PROCEDURE Interval (job   IN binary_integer

  Interval IN varchar )

  job参数标识一个特定的工作 interval参数指示一个工作重执行的频度

   ISubmit()过程用来用特定的工作号提交一个工作 这个过程有五个参数 job what next_date interval与no_parse

  PROCEDURE ISubmit (job    IN binary_ineger

  What   IN varchar

  next_date IN date

  interval IN varchar

  no_parse IN booean:=FALSE)

  这个过程与Submit()过程的唯一区别在于此job参数作为IN型参数传递且包括一个由开发者提供的工作号 如果提供的工作号已被使用 将产生一个错误

   Next_Date()过程用来显式地设定一个工作的执行时间 这个过程接收两个参数 job与next_date

  PROCEDURE Next_Date(job     IN binary_ineger

  next_date  IN date)

  job标识一个已存在的工作 next_date参数指示了此工作应被执行的日期与时间

   Remove()过程来删除一个已计划运行的工作 这个过程接收一个参数

  PROCEDURE Remove(job IN binary_ineger);

  job参数唯一地标识一个工作 这个参数的值是由为此工作调用Submit()过程返回的job参数的值 已正在运行的工作不能由调用过程序删除

   Run()过程用来立即执行一个指定的工作 这个过程只接收一个参数

  PROCEDURE Run(job IN binary_ineger)

  job参数标识将被立即执行的工作

   使用Submit()过程 工作被正常地计划好

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

  PROCEDURE Submit ( job    OUT binary_ineger

  What   IN varchar

  next_date IN date

  interval IN varchar

  no_parse IN booean:=FALSE)

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

  what参数是将被执行的PL/SQL代码块

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

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

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

   User_Export()过程返回一个命令 此命令用来安排一个存在的工作以便此工作能重新提交

  此程序有两个参数 job与my_call

  PROCEDURE User_Export(job    IN binary_ineger

  my_call  IN OUT varchar )

  job参数标识一个安排了的工作 my_call参数包含在它的当前状态重新提交此工作所需要的正文

   What()过程应许在工作执行时重新设置此正在运行的命令 这个过程接收两个参数 job与what

  PROCEDURE What (job IN binary_ineger

  What IN OUT varchar )

  job参数标识一个存在的工作 what参数指示将被执行的新的PL/SQL代码

  三 查看相关job信息

   相关视图

  dba_jobs

  all_jobs

  user_jobs

  dba_jobs_running 包含正在运行job相关信息

   查看相关信息

  SQL>SELECT JOB NEXT_DATE NEXT_SEC FAILURES BROKEN

  SQL>FROM DBA_JOBS;

  JOB NEXT_DATE NEXT_SEC FAILURES B

  

   JUN : : N

   OCT : : N

   JUN : : Y

   rows selected

  正在运行的JOB相关信息

  SELECT SID r JOB LOG_USER r THIS_DATE r THIS_SEC

  FROM DBA_JOBS_RUNNING r DBA_JOBS j

  WHERE r JOB = j JOB;

  SID JOB LOG_USER THIS_DATE THIS_SEC

  

   HR OCT : :

   QS OCT : :

   rows selected

  JOB QUEUE LOCK相关信息

  SELECT SID TYPE ID ID

  FROM V$LOCK

  WHERE TYPE = JQ ;

  SID TY ID ID

  

   JQ

   row selected

  四 简单例子

  创建测试表

  SQL> create table myjob(a date);

  表已创建

  创建一个自定义过程

  SQL> create or replace Procedure prc_myjob as

    begin

    insert into myjob values(sysdate);

    end;

    /

  过程已创建

  创建JOB

  SQL> variable job number;

  SQL> begin

    dbms_job submit(:job prc_myjob; sysdate sysdate+ / ); 每天 分钟 即一分钟运行test过程一次

    end;

    /

  PL/SQL 过程已成功完成

  运行JOB

  SQL> begin

    dbms_job run(:job );

    end;

    /

  PL/SQL 过程已成功完成

  SQL> select to_char(a yyyy/mm/dd hh :mi:ss ) 时间 from TEST;

  时间

  

   / / : :

   / / : :

   / / : :

  删除JOB

  SQL> begin

    dbms_job remove(:job ); 如果知道job号 可以直接使用 如dbms_job remove( );

    end;

    /

  PL/SQL 过程已成功完成

  上面的是每间隔多久执行一次指定的job 那么如何设置定时定点job呢 如设置 月 号晚 点执行?

  创建JOB

  SQL> variable job number;

  SQL> begin

    dbms_job submit(:job prc_myjob; sysdate ADD_MONTHS(TRUNC(SYSDATE MM ) )+ + / );

    end;

    /

  PL/SQL 过程已成功完成

  运行JOB

  SQL> begin

    dbms_job run(:job );

    end;

    /

  PL/SQL 过程已成功完成

cha138/Article/program/Oracle/201311/17886

相关参考

知识大全 Oracle数据库中如何根据时间来执行JOB

Oracle数据库中如何根据时间来执行JOB  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问题

知识大全 Oracle作业job没有自动调度起来

Oracle作业job没有自动调度起来  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracl

知识大全 Oracle作业(JOB)更新next

Oracle作业(JOB)更新next  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要:本文

知识大全 Oracle JOB 用法小结

OracleJOB用法小结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一设置初始化参数job

知识大全 Oracle数据库定时器Job

Oracle数据库定时器Job  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  写法  decla

知识大全 解析Oracle查询和删除JOB的SQL

解析Oracle查询和删除JOB的SQL  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对

知识大全 Oracle数据库定时Jobs作业的使用方法

Oracle数据库定时Jobs作业的使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Or

知识大全 如何彻底停止job

  现象  在oracle的工作队列里面执行存储过程执行出错导致队列死掉了我使用remove把作业从工作队列里面去除掉重新修改过程可是编译的时候死掉了根据以往的经验是因为过程正在执行的时候不能编译的原

知识大全 如何在51job上发布招聘信息

如何在51job上发布招聘信息先在“企业报务”上申请一个企业用户,然后登录,里面有相关招聘发布的板块,也可以联系51JOB的客服帮助怎么在51job上发布招聘信息到工商去注册,然后51上认证企业,就可

知识大全 如何才能解决JOB的Interval输入参数过长

如何才能解决JOB的Interval输入参数过长  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文