精华内容
下载资源
问答
  • oracle 作业调度

    2017-06-25 10:09:04
    1 . create a program (enabled or disabled) --optional 2. create and use a scedule 3. create and submit a job 如果是复杂作业 可以考虑作业链 eg:

    1 . create a program (enabled or disabled) --optional

    2. create and use a scedule

    3. create and submit a job


    如果是复杂作业  可以考虑作业链



    eg:


    展开全文
  • oracle job调度存储过程 触发器 定时更新数据库
  • 存储过程 CREATE OR REPLACE AS countNum varchar2(10); BEGIN ...select count(*) Into countNum...任务调度 job declare jobno number; DBMS_JOB.SUBMIT( job => jobno, what => '存储过程名字', ...

    存储过程

    CREATE OR REPLACE

    AS

    countNum varchar2(10);

    BEGIN

    select count(*) Into countNum from 表

    end;

     

    任务调度

    job

    declare

    jobno number;

    DBMS_JOB.SUBMIT(

    job => jobno,

    what => '存储过程名字',

    NEXT_DATE => sysdate+1(24*60),

    Interval => 'trunc(sysdate,''mi'')+1/(24*60)'

    );

    commit;

    end;

    展开全文
  • Oracle的任务调度

    万次阅读 2012-10-16 23:53:41
    什么是自动维护任务:  自动维护任务是定期自动执行的维护数据库的操作任务,比如说:为了查看优化器而从数据库对象中采集统计信息的任务.... Oracle数据库中包含下面三个预定义的自动维护任务: a、优化程
    什么是自动维护任务:
        自动维护任务是定期自动执行的维护数据库的操作任务,比如说:为了查看优化器而从数据库对象中采集统计信息的任务.自动维护任务在维护窗口(maintenance window)中运行,需要预先定义运行的时间间隔。可以根据资源使用模式来自定义维护窗口,或者禁用指定的维护窗口,创建自己的维护窗口。
        Oracle数据库中包含下面三个预定义的自动维护任务:
    a、优化程序统计信息收集:用于收集数据库中所有对象的优化统计数据。收集到的统计数据被SQL查询优化器用来改进SQL语句的执行效率。
    b、段指导:Oracle的主动管理空间工具,用于标识有空闲空间可以重用的段,并且给出如何重组这些段的定义。
    c、自动的进行SQL优化:负责高负载SQL语句的性能,并且给出调整这些语句性能的具体的建议。

    维护窗口:
        维护窗口是自动维护任务运行过程中的一个连续的时间间隔,是Oracle的调度窗口,它可以是简单的、重复的时间间隔,例如每个周五的五点钟到下午的六点钟,也可以是一个复杂的时间间隔,比如每个月的最后一个工作日的中午十二点到晚上的下午六点,并且排除法定节假日。
        当维护窗口打开的时候,Oracle数据库会为每一个维护任务创建一个Oracle的作业调度,用于在窗口中调度维护任务。每个作业都会被生成一个作业名,所有的自动维护任务的作业名都以ORA$AT开头的,比如说Automatic Segment Advisor作业的名称可以使ORA$AT_SA_SPC_SY_20。当自动维护任务的作业结束的时候,它将被从Oracle调度作业系统中删除。
    下面是Oracle预定义的几个维护任务:
    a、MONDAY_WINDOW 每周一的晚上十点到第二天两点
    b、TUESDAY_WINDOW 每周二的晚上十点到第二天两点
    c、WEDNESDAY_WINDOW 每周三的晚上十点到第二天两点
    d、THURSDAY_WINDOW 每周四的晚上十点到第二天两点
    e、FRIDAY_WINDOW 每周五的晚上十点到第二天两点
    f、SATURDAY_WINDOW 每周六的晚上十点到第二天两点
    g、SUNDAY_WINDOW 每周日的晚上十点到第二天两点

    Oracle的调度器:
    为了简化对大量任务的调度,Oracle提供了一个任务调度器,它通过执行DBMS_SCHEDULER程序包中的过程和函数来实现,调度器可以完成下面的一些任务:
    1)执行PL/SQL块、PL/SQL存储过程以及java的存储过程。
    2)运行数据库外可执行程序,例如应用程序、脚本、批处理文件等等(2012/10/16 22:53 陈字文,今天为什么学习任务调度的原因。)
    3)使用不同的方法调度作业的执行,比如说基于时间的调度,基于事件的调度以及独立的调度等等。
    4)根据业务需求对作业排列优先级。
    5)管理和监控作业。
    6)在集群环境下执行和管理作业。
    Oracle的主要调度器对象如下:
    1)作业(Job),指用于描述用户定义任务的元数据的集合。
    2)链(Chains),由使用独立规则组成的多个步骤组成,可以实现独立的调度。在链中,作业可以根据其他之前执行的作业的输出结果决定何时启动。
    3)调度(Schedule),指定什么时候启动作业,以及执行的次数。
    4)程序(Program),指定调度执行的程序,包括PL/SQL程序块、PL/SQL存储过程和JAVA存储过程等等。
    5)作业类(Job Classes),相当于创建了一个作业组,可以将具有相同特性的作业放到相同的作业类中,然后通过作业类应用Oracle中的资源使用计划特征。
    6)窗口(Window),表示一个时间段,在每天(或者每周、每月等)的这个时间段中可以自动执行指定的作业。
    7)窗口组(Window Group),将窗口组合起来,以易于使用窗口,并且在运行作业时提供对窗口的更多控制。

        作业表是所有作业的容器,每个数据库只有一个作业表。作业表中保存所有的作业的信息,例如所有者的名称,日志级别等等,因此它也会占用一定的数据库的空间。为了节约空间,可以通过设置作业的auto_drop属性,在作业完成之后,将其自动删除。
        作业协调器是一个后台的进程,它可以自动运行。在数据库实例启动的时候,作业协调器不会自动的启动,但是数据库会监控是否存在需要执行的作业或者需要打开的窗口,并且根据实际的具体情况来决定是否需要启动作业协调器。
        只要有作业或者窗口在运行,作业协调器就会运行。当Oracle调度器停止工作一段时间之后,而且没有其他的作业或者窗口被调度的时候,协调器将会被自动的停止。

    作业协调器的主要功能如下:
    1)控制和生成作业执行器
    2)查询作业表
    3)根据一定的规则从作业表中读取作业,并且将他们防止到内存高速缓冲器中。这样可以减少对磁盘的访问,从而提高工作效率。
    4)从内存高速缓冲器中获取作业,把他们传送到作业执行器中执行。
    5)当作业执行器不再使用的时候,清理作业执行器池。
    6)如果没有被调度的作业,则休眠;当有新作业要执行或者使用CREATE_JOB存储过程创建了新作业的时候要被唤醒。
    7)当数据非正常关闭然后再启动的时候,恢复正在运行的作业。

    用户不需要设置作业协调器何时检查作业表,系统会自动处理。作业协调器会根据CPU利用率和未完成的作业数量来自动决定启动多少个作业执行器。

    作业执行器的工作方式如下:
    (1)收集运行作业所需要的所有元数据。例如,程序的参数和权限信息。
    (2)启动作业所有者的数据会话,开始事务,然后开始执行作业。
    (3)作业完成之后,执行器会提交并且结束事务。
    (4)结束会话。

    当作业执行完成之后,作业执行器会执行如下几个工作:
    1)如果需要,则重新调度作业
    2)更新作业表的状态,判断作业是否已经完成或者需要调度再次执行
    3)向作业日志表中插入记录
    4)更新正在运行的作业数量、运行失败的作业数量和重试的作业数量
    5)寻找新的工作,如果没有,则进入休眠

    作业
        作业是主要的Oracle调度器对象,它包含两个基本的因素,即需要执行什么(动作)和什么时候执行(调度)。可以通过下面的一种方式来执行作业的动作:
    a、作为作业属性,指定要运行的数据库程序单元或者外部可执行文件。
    b、作为作业属性,指定要运行的程序对象的名称。
        作业的所有者必须拥有要运行程序的EXECUTE权限或者EXECUTE ANY PROGRAM系统权限。

    可以通过下面的方法来指定作业调度:
    a、设置作业对象的属性,定义作业的开始时间、结束时间和重复周期
    b、设置作业对象的属性,指定一个调度对象的名称。在调度对象中定义了作业的开始时间,结束时间和重复周期。

        在创建并且启用作业之后,Oracle调度器将根据其调度信息自动运行作业。可以通过 系统视图来查看作业的运行状态和作业日志。

    1、作业实例
        作业实例代表一个正在运行的作业,只运行一次的作业只有一个实例,能够重复运行的作业则可以有多个实例,每次作业运行都代表一个实例,比如说:一个作业被每周二安排运行一次,则在周二的时候,会有一个该作业的实例。

    2、作业参数
        当作业中引用一个程序对象的时候,可以为作业提供参数。直到所有的程序参数都被指定之后,作业才能被启用。例如:有一个作业要在每天晚上为每一个部门生成一份报告,而且每个部门的报告格式又不相同。则该作业中运行的程序可以带一个参数,就是部门编号。用户在运行该作业的时候都需要指定一个部门编号作为作业的参数。

    3、程序、作业、和调度之间的关系
    P1到P10表示十个程序(Program),J1到J24表示24个作业(Job),S1到S4表示4个调度(Schedule)。这里假定P1是使用DMBS_STATS程序包来进行分析的程序,程序有一个参数,就是要分析的表名。J1和J2两个作业都指向相同的程序P1,但是它们在调用程序P1的时候使用不同的参数,也就是需要对不同的表进行表分析。调度S1可以指定在每天的凌晨1:00开始运行,这样J1和J2的两个作业中指定的表将在每天凌晨1:00进行分析。
    作业J4没有指向任何的程序和调度,也就是说,在作业中已经包含了要执行的操作和执行的时间等信息。
    P2、P9和S2演示了这样的一种情况,用户可以定义程序和调度,但是暂时没有作业应用他们。但是未来创建的作业可以引用这些程序和调度。   
        
    4、作业的分类
    Oracle调度器支持下面四种作业类型:
    a、数据库作业(Database Jobs):只运行数据库程序单元,包括PL/SQL语句块,PL/SQL存储过程和JAVA存储过程。
    b、链作业(Chains Jobs):链是一种可以独立调度的调度器机制。在最简单的情况下,链中定义了一组程序对象和他们之间的依赖关系。链作业指定一个链,而不是一个程序,由链作业来启动链。
    c、外部作业(External Jobs):可以使一个运行在数据库之外的操作系统可执行文件。
    d、分离作业(Detached Jobs):调度器可以在多个进程中独立的、并发的启动分离作业中的一个脚本或者应用程序。
    e、轻量作业(Lightweight Jobs):指的是运行时间很短、但是运行比较频繁的作业。

    设置调度的重复时间间隔
        通过设置作业的repeat_interval属性可以控制作业什么时候运行和多长时间重复运行一次.对repeat_interval属性进行计算的结果是一组时间戳,在每个时间戳上调度都会运行作业.调度会根据作业的开始时间来计算重复的时间戳.如果下一个时间戳到来的时候作业仍旧在运行,那么系统会创建一个新的作业实例,但是直到当前作业执行完成之后才会开始执行新的作业实例。在Oracle中,有两种方式来设置调度的重复时间间隔,如下:
    使用日历表达式
        日历表达式是设置作业的repeat_interval属性的一种主要方法.日历表达式一般可以分为三个部分,即频率、时间间隔以及附加参数。
    频率使用FREQ关键字来指定,这是一个必选参数;
    时间间隔使用INTERVAL关键字来指定,它的取值范围为1-999,这是一个可选参数;
    附加参数用于指定日期和时间,它也是可选参数,例如BYMONTH、BYWEEKNO、BYYEARDAY、BYDAY、BYHOUR、BYMINUTE、BYSECOND等等。
    例如,下面的日历表达式指定每两个小时运行一次调度:
    'FREQ = HOURLY;INTERVAL=2;'
    指定每天运行一次的日期表达式如下:
    'FREQ = DAILY;'
    指定每周一、三、五运行一次的日期表达式如下:
    'FREQ = WEEKLY;BYDAY=MON,WED,FRI;'
    指定每年的3、6、9、12月的2号运行一次的日期表达式如下:
    'FREQ = YEARLY;BYMONTH=MAR,JUN,SEP,DEC;BYMONTHDAY =2;'
    指定每隔周的周五运行一次的日期表达式如下:
    'FREQ = WEEKLY;INTERVAL = 2;BYDAY = FRI;'
    指定每月最后一天运行的日期表达式如下:
    'FREQ = MONTHLY;BYMONTHDAY=-1;'
    指定每年3月10号运行的日期表达式如下:
    'FREQ = YEARLY;BYMONTH = MAR;BYMONTHDAY=10;'
    或者
    'FREQ = YEARLY;BYDATE = 0310;'
    指定每天下午4点、5点、6点运行的日期表达式如下:
    'FREQ = DAILY;BYHOUR = 16,17,18;'
    指定每个月第二个星期三运行的日期表达式如下:
    'FREQ = MONTHLY;BYDAY=2WED;'
    指定每年最后一个星期五运行的日期表达式如下:
    'FREQ = YEARLY;BYDAY = -1FRI;'
    指定每个月前三天每小时运行一次的日期表达式如下:
    'FREQ = HOURLY;BYMONTHDAY=1,2,3;'
    使用PL/SQL表达式
    也可以使用PL/SQL表达式来表示调度的重复时间间隔,PL/SQL表达式必须是时间或者时间戳.例如SYSDATE、SYSTIMESTAMP或者SYSTIMESTAMP + INTERVAL '30' MINUTE等。

    展开全文
  • oracle job定时调度任务

    2016-12-15 18:05:01
    Oracle JOb :oracle的定时调度任务 二,dbms_job package 用法介绍  包含以下子过程:     Broken()过程。  change()过程。  Interval()过程。  Isubmit()过程。  Next_Date()过程。  Remove()过程。  ...

    Oracle JOb :oracle的定时调度任务


    二,dbms_job package 用法介绍
      包含以下子过程: 
      
      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说明此工作将标记为未破。 bitsCN.Com 
      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) bitscn.com 
      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代码。



    一:简单测试job的创建过程案例: 

    1,先创建一张JOB_TEST表,字段为a 日期格式

    SQL> create table JOB_TEST(a date);

    Table created

    SQL> commit;

    Commit complete

    2,创建一个存储过程 bb 作用是往pig表中插入数据

    SQL> create or replace procedure JOB_PRO_TEST as

      2  begin

      3  insert into JOB_TEST values(sysdate);

      4  end;

      5  /

    Procedure created

     

    3,创建一个job,名称为job2010 ;作用是每分钟(60×24=1440)执行一次存储过程JOB_PRO_TEST。

    SQL> variable job2010 number;

    SQL> begin

      2  dbms_job.submit(:job2010,'JOB_PRO_TEST;',sysdate,'sysdate+1/1440');

      3  end;

      4  /

    注意:这里系统自动生成job id 为41

    PL/SQL procedure successfully completed

    job2010

    ---------

    41

    4,运行job2010

    SQL> begin

      2  dbms_job.run(:job2010);

      3  end;

      4  /

    PL/SQL procedure successfully completed

    job2010

    ---------

    41

    5,删除job2010

    SQL> begin

      2  dbms_job.remove(:job2010);

      3  end;

      4  /

    6,查询jobs的相关视图

    select job,last_date,last_sec,broken,failures,interval, what from dba_jobs

    详解 dba_jobs中几个比较重要的字段

    job: 指的是job的id号。比如上面的 41

    failures:job执行的时候失败次数,如果超过了15次,那么broken列将被标为Y,以后就不会运行该job了

    broken:默认为N,如果为Y,意味着不再执行该job!

    interval:执行job的间隔时间。

    what:该job的实际工作。

    二:job 的相关知识:

    1,DBA_JOBS

    DBA_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) 任务运行的其他一些会话参数

    --------------------------

    2,描述 INTERVAL参数值

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

    每天早上8点30分: 'TRUNC(SYSDATE + 1) + (8*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)'

    每月25号00:00执行: 'TRUNC(LAST_DAY(SYSDATE ) + 25)'

    --------------------------

    1:每分钟执行

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

    Interval => 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

    3. 查看相关job信息

    相关视图

    dba_jobs

    all_jobs

    user_jobs

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

    三:实际应用

     

    步骤一:创建一个job,每月25日执行下面sql。

    SQL> variable job2010 number;

    SQL> begin

    SQL> dbms_job.submit(:job2010,'delete from i0216_inv_balance_curstock where trunc(sysdate-mtime) > 90 and  ib_qty = 0;commit;',sysdate,'TRUNC(LAST_DAY(SYSDATE ) + 25)');      <==每月25号00:00执行

    SQL> end;

    SQL> /

     

    步骤二:查询生成的job id

    SQL> select job, what from dba_jobs;

    job          what

    61           ..........

     

    步骤三:运行刚才创建的job

    SQL> begin

    SQL> dbms_job.run(61);

    SQL> end;

    SQL> /

     

    步骤四:查询该job下次执行的时间

    SQL> select job,next_date,what from dba_jobs

    SQL> where job=’61’;

     

    步骤五:删除该job

    SQL> begin

    SQL> dbms_job.remove(61);

    SQL> end;

    SQL> /

    展开全文
  • 对很多系统而言,作业调度event, 'Scheduler');...Oracle自身提供了较为可靠的运行作业调度器机制,为我们提供了现成的Scheduler组件。   调度作业有两种大类型:基于时间(Time-Based)和基于事件(Event-Ba
  • oracle 创建调度作业

    2021-05-12 16:54:42
    查询所有调度作业 select * from ALL_SCHEDULER_JOBS; 查询当前用户调度作业 select * from USER_SCHEDULER_JOBS; 创建调度作业两种情况 (1) begin sys.dbms_scheduler.create_job(job_name => 'sa....
  • 整理scheduler 这一部分,源于最近发现系统上自动采集统计...首先简单讲一下oracle 10g scheduler,10g引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理.它主要...
  • oracle 查看调度作业和job的表

    万次阅读 2016-11-28 15:51:29
    user_SCHEDULER_JOBS --调度作业表 user_jobs --定时任务表
  • oracle定时任务dbms_job与dbms_scheduler使用方法 2018年08月20日 13:18:20 风灵使 阅读数:111 工作中需要一个定时任务来抽取数据,之前采用的是dbms_job包下的过程来创建job,遇到了一些问题。找了下资料,得知...
  • 在11g中,Oracle提供了一个新建的Scheduler特性,帮助将作业实现自动化。它还可以帮助你控制资源的利用与并可以将数据库中的作业按优先顺序执行。传统的dbms_jobs的一个限制是它只能调度基于PL/SQL的作业,不能用来...
  • &amp;amp;nbsp;&...学习oracle的小伙伴们,要清楚oracle中的七个服务还是很重要滴!这样我们可以得心应手的选择需要启动的服务,给你的好朋友计算机也解解压~ 1 、安装完oracle后我们会发现有
  • Oracle 作业

    千次阅读 2017-04-21 14:12:16
    Oracle 服务端 定时任务
  • Oracle调度程序作业dbms_scheduler

    千次阅读 2009-10-20 16:56:00
    Oracle 10g引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理。 整理scheduler这一部分,源于最近发现系统上自动采集统计信息的执行时间有些异常,执行时间被...
  • oracle使用DBMS_SCHEDULER调度作业

    万次阅读 2016-10-27 13:24:14
    介绍oracle里怎样使用dbms_scheduler包调度作业
  • oracle 执行作业时报上述错误 解决办法: SQL> show parameter job_queue_processes   NAME TYPE VALUE ------------------------------------ ----------- ------------------------
  • oracle 创建调度(job)

    2014-01-01 20:14:28
    --创建调度计划(schedule) begin sys.dbms_scheduler.create_schedule( schedule_name=>'demo_scheduler', start_date=>null, repeat_interval=>'FREQ=MINUTELY;INTERVAL=1',--每分钟执行一次 end_date=>null, ...
  • Oracle Scheduler可以帮助DBA或者数据库用户自动调度和运行各种类型的作业,比如数据库备份、...完成企业在资源管理和作业调度上的各种复杂需求,在10g之前可以通过DBMS_JOB工具来实现类似的功能,但毫无疑问,DBMS...
  • 1、问题描述 接到客户电话告知,说是近期数据库...查看trace文件信息发现是DBMS_SCHEDULER调度ORACLE_APEX_MAIL_QUEUE造成的,该作业每5分钟调度一次。 2、解决方法 查看该作业调度状态及相关信息 SQL>...
  • Oracle DB 使用调度程序自动执行任务

    千次阅读 2013-10-30 09:59:33
    • 创建作业、程序和调度 • 监视作业执行 • 使用基于时间或基于事件的调度来执行调度程序作业 • 描述窗口、窗口组、作业类和使用者组的用途 • 使用电子邮件通知 • 使用作业链来执行一系列相关任务 • 描述远程...
  • http://sckjyxgs.iteye.com/blog/1271864 转载于:https://www.cnblogs.com/diyunpeng/p/10022750.html
  • Oracle 批处理是通dbms_job包实现的 下面通过使用创建一个表,每分钟向其中插入一条当前时间纪录学习该包,本人使用PL/SQL Developer开发工具 1、创建表 create or replace table testjob(a date); 2、创建...
  • Oracle实现有依赖关系的任务调度

    千次阅读 2019-01-14 18:09:20
    Oracle里面有不同的任务Schedule Job,每个任务之间有依赖关系,也就是,例如Job A执行完之后才能执行Job B。 【设计思路】 有专门的工具来做数据库的任务调度,想着自己的需求比较简单,可以自己写代码来开发一...
  • 问题描述 问题解决 在命令行查看job_queue_processes状态。这个参数的意思是允许并行的JOB数量,如果为0的话就是不允许JOB运行 SQL> show parameter job_queue_processes NAME TYPE VALUE ...
  • Oracle定时作业

    千次阅读 2017-11-20 17:33:43
    再使用job queue之前,我们还要简单配置下,oracle定时执行job queue 的后台进程是SNP,要启动   snp,首先看系统模式是否支持   sql>  alter   system enable restricted session; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,023
精华内容 6,009
关键字:

oracle作业调度