`
雪梦泪痕
  • 浏览: 5587 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle 创建调度(job)

阅读更多

job案例,每间隔一分钟插入数据

--创建表
create table SCHEDULER_TEST
(
  id      NUMBER,
  instime TIMESTAMP(8)
)

--创建存储过程
create or replace procedure p_insSysdate as
   id number;
begin
   select count(*)+1 into id from scheduler_test;
   insert into scheduler_test values(id,sysdate);
   commit;
end;
/
--创建调度计划(schedule)
begin
sys.dbms_scheduler.create_schedule(
schedule_name=>'demo_scheduler',
start_date=>null,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1',--每分钟执行一次
end_date=>null,
comments=>'test scheduler');
end;
/
--创建作业程序(pragram)
begin
 sys.dbms_scheduler.create_program(
 program_name=>'demo_pragram',
 program_type=>'PLSQL_BLOCK',
 program_action=>'BEGIN p_insSysdate;END;',
 enabled=>TRUE,
 comments=>'test pragram');
end;
/
--创建job
 begin
 sys.dbms_scheduler.create_job(
 job_name=>'demo_job',
 program_name=>'demo_pragram',
 schedule_name=>'demo_scheduler',
 job_class=>'DEFAULT_JOB_CLASS',
 enabled=>true,
 auto_drop=>true,
 comments=>'test job');
end;
/
--执行job
exec sys.dbms_scheduler.run_job('demo_job');


说明
1.program_type :任务执行的操作类型,必选值,有下列几个可选值:
    PLSQL_BLOCK :表示任务执行的是一个PL/SQL匿名块。
    STORED_PROCEDURE :表示任务执行的是Oracle过程(含PL/SQL PROCEDURE和JAVA PROCEDURE),本例中正是指定这一参数值。
    EXECUTABLE :表示任务执行的是一个外部程序,比如说操作系统命令。
    CHAIN :表示任务执行的是一个CHAIN。

2.START_DATE :指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE。
3.REPEAT_INTERVAL :指定任务执行的频率,比如多长时间会被触发再次执行。本参数也可以为空,如果为空的话,就表示当前设定的任务只执行一次。REPEAT_INTERVAL参数需要好好说说,REPEAT_INTERVAL参数的语法结构要复杂的多。其中最重要的是FREQ和INTERVAL两个关键字。
FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分别表示年、月、周、日、时、分、秒等单位。
INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-99。
例如:REPEAT_INTERVAL=>'FREQ=DAILY;INTERVAL=1';表示每天执行一次,如果将INTERVAL改为7就表示每7天执行一次,效果等同于FREQ=WEEKLY;INTERVAL=1。

一般来说,使用DBMS_SCHEDULER.CREATE_JOB创建一个JOB,至少需要指定上述参数中的前3项。除此之外,还可以在CREATE_JOB时,指定下列参数:

4.NUMBER_OF_ARGUMENTS :指定该JOB执行时需要附带的参数的数量,默认值为0,注意当JOB_TYPE列值为PLSQL_BLOCK或CHAIN时,本参数必须设置为0,因为上述两种情况下不支持附带参数。
5.END_DATE :指定任务的过期时间,默认值为NULL。任务过期后,任务的STATE将自动被修改为COMPLETED,ENABLED被置为FALSE。如果该参数设置为空的话,表示该任务永不过期,将一直按照REPEAT_INTERVAL参数设置的周期重复执行,直到达到设置的MAX_RUNS或MAX_FAILURES值。
6.JOB_CLASS :指定任务关联的CLASS,默认值为DEFAULT_JOB_CLASS。关于JOB CLASS的信息就关注本系列的后续文章。
ENABLED :指定任务是否启用,默认值为FALSE。FALSE状态表示该任务并不会被执行,除非被用户手动调用,或者用户将该任务的状态修改为TRUE。
AUTO_DROP :当该标志被置为TRUE时,ORACLE会在满足条件时自动删除创建的任务
任务已过期;
任务最大运行次数已达MAX_RUNS的设置值;
任务未指定REPEAT_INTERVAL参数,仅运行一次;
7.COMMENTS :设置任务的注释信息,默认值为NULL。

exec dbms_scheduler.enable('demo_job');  --启用jobs  
 
exec dbms_scheduler.disable('demo_job');  --禁用jobs  
 
exec dbms_scheduler.run_job('demo_job');  --执行jobs  
 
exec dbms_scheduler.stop_job('demo_job');  --停止jobs  
 
exec dbms_scheduler.drop_job('demo_job');  --删除jobs 


 

分享到:
评论

相关推荐

    ORACLE创建JOB脚本

    本文将深入探讨Oracle中的JOB创建,以及如何编写和使用相应的脚本来设定定时任务。 首先,我们需要理解Oracle中的DBMS_JOB包,这是Oracle提供的一组过程,用于创建、修改和管理JOB。DBMS_JOB包包含以下主要过程: ...

    分布式任务调度平台XXL-JOB(Oracle版)

    这里分享自己已经跑起来的Oracle版本分布式任务调度平台XXL-JOB资源。 官方只有Mysql版本的DEMO,由于近期单位项目需要,将原来DEMO稍作修改后改成了oracle版本,主要修改工作包括修改配置文件,数据库连接方式,pom...

    oracle执行调度百度

    【标题】"Oracle执行调度百度"涉及到的是Oracle数据库系统中的调度功能,这通常指的是Oracle的Automatic Job Queue(AJQ)或者DBMS_SCHEDULER模块。Oracle数据库允许用户在特定时间或间隔执行任务,如数据备份、统计...

    oracle job创建脚本

    Oracle Job是Oracle数据库中的一种调度工具,用于在指定的时间自动执行PL/SQL代码或存储过程。这在数据库管理和维护中非常有用,特别是对于定期运行的任务,如数据清理、备份、统计分析等。以下是对创建Oracle Job的...

    oracleJob创建脚本

    2. **编写Job创建脚本**:将特定的PL/SQL块粘贴到命令窗口中,该脚本负责定义Job的详细行为。 3. **执行脚本**:执行该脚本,从而完成Job的创建。 ##### 2.2 脚本分析 ```plsql DECLARE variablejobnumber NUMBER...

    Oracle案例详细分析:Job任务停止执行

    本文通过一次Oracle Job任务异常案例诊断,分析其原因及解决过程,从内部揭示Oracle Job任务调度及内部计时机制。以下是关于Oracle Job任务的知识点: 1. Oracle Job任务的概念:Oracle Job任务是指在数据库中执行...

    oracle job调度存储过程 触发器 定时更新数据库

    Oracle Job调度存储过程的使用步骤通常包括以下几个部分: 1. **创建存储过程**:首先,你需要编写一个存储过程,包含你希望定时执行的逻辑,比如更新数据库中的某些记录。这个过程可能涉及复杂的查询、数据处理...

    oracle调度程序

    ### Oracle调度程序详解 #### 一、Oracle调度程序概述 Oracle调度程序是Oracle数据库系统中的一个强大工具,用于管理和执行数据库中的各种定时任务。自Oracle 11g版本起,Oracle引入了全新的Scheduler特性,这一...

    创建oracle job

    - **Job**:Job是由Oracle Scheduler管理的一个可调度的单元,它可以关联到一个程序(Program)和一个调度(Schedule),并且可以在指定的时间点或者周期内执行。 - **Program**:Program是一个存储的过程或块,它定义了...

    linux下oracle创建实例总结

    ### Linux 下 Oracle 10.2.0 创建实例详尽指南 #### 一、环境配置与准备 在开始创建 Oracle 数据库实例之前,确保已经安装了 Oracle 10.2.0 版本,并完成了相应的环境变量配置。下面将详细介绍环境配置的步骤。 *...

    Oracle Job的用法

    一、创建Oracle Job Oracle Job的创建通常通过DBMS_SCHEDULER包中的程序来完成。首先,你需要创建一个job,指定其执行的PL/SQL块,如下面的例子所示: ```sql BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my...

    xxl-job oracle 适配版本

    3. **事务管理**:Oracle支持分布式事务,XXL-JOB在处理多任务调度时,可能会利用Oracle的事务特性来确保数据的一致性。 4. **连接池配置**:使用合适的Oracle数据库连接池,如C3P0或DBCP,以提高数据库连接的复用...

    oracle的job定时

    Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...

    oracle job

    3. **调度Job**:使用`repeat_interval`参数设定Job的执行频率,例如每日、每周、每小时等。间隔可以非常灵活,可以根据需要定制。 4. **监控Job**:可以使用DBA视图(如DBA_JOBS, ALL_JOBS, USER_JOBS)来查看Job...

    oracle中job调度存储过程 触发器 定时更新数据库.rar

    2. 使用DBMS_SCHEDULER.CREATE_JOB创建Job,指定存储过程作为执行体。 3. 配置Job的执行时间,如频率、开始时间和结束时间。 4. 启动Job,使其开始按照预定计划运行。 5. 如有必要,可以监控和调整Job的运行状态。 ...

    oracle job实例 测试通过

    从给定的Oracle Job实例测试通过的描述与代码片段中,我们可以提炼出多个关于Oracle数据库管理、编程与作业调度的关键知识点。以下是对这些知识点的详细解释: ### 1. 创建序列(Sequence) 在Oracle数据库中,...

    oracle job使用详解

    - `job_queue_interval` 参数定义了调度作业刷新的频率,单位为秒。默认情况下,Oracle 会每分钟检查一次是否有 Job 需要运行。 3. **查看 Job 参数**: 可以使用 `SHOW PARAMETER job_queue_process` 查看当前的...

    oracle调度任务的书写格式

    创建Oracle调度任务主要涉及DBMS_SCHEDULER包中的CREATE_JOB过程。下面是一个基本的创建调度任务的示例: ```sql BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_job', -- 调度任务的名称 job_type => '...

    oraclejob例子

    Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler(数据库调度器)进行管理。下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler...

    DBMS_JOB包创建ORACLE定时任务

    ### DBMS_JOB包创建Oracle定时任务详解 在Oracle数据库中,`DBMS_JOB`包提供了一种机制,用于创建和管理后台作业(Job),这些作业可以在特定的时间或按一定的时间间隔执行。这对于需要定期执行的任务非常有用,...

Global site tag (gtag.js) - Google Analytics