调度作业相关

1、新建调度和作业
/*

FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分别表示年、月、周、日、时、分、秒等单位。
INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-99。

job_name: 顾名思义,每个job都必须有一个的名称
schedule_name: 如果定义了计划,在这里指定计划的名称
job_type: 目前支持三种类型:

PL/SQL块: PLSQL_BLOCK,
存储过程: STORED_PROCEDURE
外部程序: EXECUTABLE (外部程序可以是一个shell脚本,也可以是操作系统级别的指令).

job_action: 根据job_type的不同,job_action有不同的含义.
如果job_type指定的是存储过程,就需要指定存储过程的名字;
如果job_type指定的是PL/SQL块,就需要输入完整的PL/SQL代码;
如果job_type指定的外部程序,就需要输入script的名称或者操作系统的指令名

enabled: 上面已经说过了,指定job创建完毕是否自动激活
comments: 对于job的简单说明
*/

begin
    dbms_scheduler.create_schedule
    (
       schedule_name   => 'EVERY_30_SECS',
       repeat_interval => 'FREQ=SECONDLY; INTERVAL=3',
       comments        => 'Every 30-SECS'
    );

   dbms_scheduler.create_job
   (
      job_name      => 'ARC_MOVE_2',
      schedule_name => 'EVERY_30_SECS',
      --job_class     => 'OLTP_JOBS', --使用指定的job class
      job_type      => 'PLSQL_BLOCK',
      job_action    =>
        'declare
          lId number;
        begin
          EXECUTE IMMEDIATE ''select nvl(max(lid),0) from table1'' into lId;
          INSERT INTO TABLE1 VALUES (lId+1);
          commit;
        end;',
      enabled       => true,
      comments      => 'Move Archived Logs to a Different Directory'
   );
end;

 

2、JOB运行情况查看

/*
如果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查:
如果FAILURE_COUNT列是一个大于0的数的话,说明JOB运行失败,要进一步的检查。
select owner, job_name, failure_count from ALL_SCHEDULER_JOBS
*/
select * from ALL_SCHEDULER_JOBS

 

3、删除调度和作业


begin
dbms_scheduler.drop_job(job_name => 'ARC_MOVE_2',force => TRUE);
dbms_scheduler.drop_schedule(schedule_name  =>'EVERY_30_SECS',force => TRUE);
end;
/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值