Oracle 定时任务详解(dbms_scheduler)

文章目录

1 概述

1. dbms_scheduler 包概念: "分而治之"
   (1) 替代了之前的 dbms_job 包,功能更加强大,可以将 job 需要的 '各种资源分开再进行组合'
   (2) 核心三要素:'schedule', 'program''job' 其它都是围绕它们来的
   (3) 除了单个 job,还能设置 job 组       
2. 主要视图
   (1) 基础信息查询
   	   select * from dba_scheduler_programs t;
   	   select * from dba_scheduler_program_args t; -- 过程参数
   	   select * from dba_scheduler_schedules t;
   	   select * from dba_scheduler_jobs t;   
   (2) 执行信息查询
       select * from dba_scheduler_running_jobs t;
       select * from dba_scheduler_job_log t;
	   select * from dba_scheduler_job_run_details t;
3. 说明:目前仅整理自己用过的,后续有有用到再继续补充 ^_^

 
 
 

基础数据:记录定时任务执行结果

create table scott.dbms_scheduler_test (  
  message     varchar2(100),  
  create_date date);

 
 
 
create or replace procedure scott.p_dbms_scheduler_test as
begin
  insert into scott.dbms_scheduler_test
    (message, create_date)
  values
    ('dbms_scheduler', sysdate);
  commit;
end;

 
 
 

1.1 思维导图

在这里插入图片描述
dbms_scheduler 包头中有全部的过程和方法及说明:
在这里插入图片描述

2 语法

2.1 核心三要素

2.1.1 program 程序

-- 项目管理程序 Program Administration Procedures
procedure create_program(
  program_name        in varchar2, -- 程序名称  
  program_type        in varchar2, -- 类型,详见 "核心属性" 
  program_action      in varchar2, -- 动作,详见 "核心属性"  
  number_of_arguments in pls_integer default 0,  -- 参数个数   
  enabled             in boolean default false,  -- 是否立即启用 
  comments            in varchar2 default null); -- 备注 
-- 备注信息特别说明 enabled = true 立即启用,false 不立即启用   以下同理
(1) false: 如果创建的程序需要输入参数(number_of_arguments >= 1),则必须定义完参数后在激活(enabled => false(2) true : 如果创建的程序不需要参数,则均可

 
 
 

创建程序:create_program

begin
  dbms_scheduler.create_program(
  program_name   => 'DBMS_SCHEDULER_PROGRAM_TEST',
  program_type   => 'STORED_PROCEDURE',
  program_action => 'SCOTT.P_DBMS_SCHEDULER_TEST',
  comments       => '调用过程测试');
end;

 
 
 

删除程序:drop_program

begin
  dbms_scheduler.drop_program(
    program_name => 'DBMS_SCHEDULER_PROGRAM_TEST'
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBMS_SCHEDULEROracle数据库中的一个内置程序包,用于管理和调度作业、程序和链。它是Oracle Scheduler的主要接口,可以通过它来创建、修改和删除作业、程序和链,以及控制它们的执行时间和执行方式。 下面是一些DBMS_SCHEDULER的常见用法: 1. 创建作业 使用DBMS_SCHEDULER.CREATE_JOB过程可以创建作业。在创建作业时,需要指定作业名称、作业类型、作业所属的程序等信息。 2. 修改作业 使用DBMS_SCHEDULER.SET_ATTRIBUTE过程可以修改作业的属性,如作业的状态、开始时间、结束时间等。 3. 删除作业 使用DBMS_SCHEDULER.DROP_JOB过程可以删除作业。 4. 运行作业 使用DBMS_SCHEDULER.RUN_JOB过程可以手动运行作业。 5. 暂停作业 使用DBMS_SCHEDULER.DISABLE过程可以暂停作业的执行。 6. 恢复作业 使用DBMS_SCHEDULER.ENABLE过程可以恢复暂停的作业。 7. 创建程序 使用DBMS_SCHEDULER.CREATE_PROGRAM过程可以创建程序。在创建程序时,需要指定程序名称、程序类型、程序所属的语言等信息。 8. 修改程序 使用DBMS_SCHEDULER.SET_PROGRAM_ARGUMENT_VALUE过程可以修改程序的参数值。 9. 删除程序 使用DBMS_SCHEDULER.DROP_PROGRAM过程可以删除程序。 10. 创建链 使用DBMS_SCHEDULER.CREATE_CHAIN过程可以创建链。在创建链时,需要指定链名称、链包含的步骤等信息。 11. 修改链 使用DBMS_SCHEDULER.SET_CHAIN_STEP_ATTRIBUTE过程可以修改链的步骤属性,如步骤名称、步骤类型、步骤所属的程序等。 12. 删除链 使用DBMS_SCHEDULER.DROP_CHAIN过程可以删除链。 以上是一些DBMS_SCHEDULER的常见用法,具体使用方法可参考Oracle官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值