📜  oracle 作业计划 - SQL (1)

📅  最后修改于: 2023-12-03 15:18:09.137000             🧑  作者: Mango

Oracle 作业计划 - SQL

简介

作业计划是 Oracle 数据库中用于执行指定任务的工具。它允许开发人员设置周期性任务或定时任务,并在指定的时间自动触发执行。

在本文中,我们将讨论如何使用 SQL 创建和管理 Oracle 作业计划。

创建作业计划
步骤

以下是创建作业计划的步骤:

  1. 创建作业类别:使用 DBMS_SCHEDULER.CREATE_JOB_CLASS 存储过程创建一个作业类别,定义作业的属性和行为。

    BEGIN
      DBMS_SCHEDULER.CREATE_JOB_CLASS(
        job_class_name => 'MY_JOB_CLASS',
        comments => 'This is my job class.'
      );
    END;
    /
    
  2. 创建作业:使用 DBMS_SCHEDULER.CREATE_JOB 存储过程创建一个作业,指定作业的名称、作业类别等信息。

    BEGIN
      DBMS_SCHEDULER.CREATE_JOB(
        job_name => 'MY_JOB',
        job_type => 'PLSQL_BLOCK',
        job_action => 'BEGIN my_procedure; END;',
        comments => 'This is my job.',
        job_class => 'MY_JOB_CLASS',
        enabled => TRUE
      );
    END;
    /
    
  3. 创建作业调度:使用 DBMS_SCHEDULER.CREATE_SCHEDULE 存储过程创建作业调度,定义作业的运行时间和频率。

    BEGIN
      DBMS_SCHEDULER.CREATE_SCHEDULE(
        schedule_name => 'MY_SCHEDULE',
        repeat_interval => 'FREQ=DAILY; BYHOUR=0; BYMINUTE=0; BYSECOND=0',
        comments => 'This is my schedule.'
      );
    END;
    /
    
  4. 关联作业和调度:使用 DBMS_SCHEDULER.ASSIGN_SCHEDULE 存储过程将作业关联到作业调度。

    BEGIN
      DBMS_SCHEDULER.ASSIGN_SCHEDULE(
        job_name => 'MY_JOB',
        schedule_name => 'MY_SCHEDULE'
      );
    END;
    /
    
  5. 启用作业:使用 DBMS_SCHEDULER.ENABLE 存储过程启用作业。

    BEGIN
      DBMS_SCHEDULER.ENABLE(
        name => 'MY_JOB'
      );
    END;
    /
    
管理作业计划
查看作业计划

要查看已创建的作业计划,可以查询 USER_SCHEDULER_JOBS 视图。

SELECT job_name, job_type, enabled, state
FROM user_scheduler_jobs;
修改作业计划

要修改已创建的作业计划,可以使用 DBMS_SCHEDULER.SET_ATTRIBUTE 存储过程。

BEGIN
  DBMS_SCHEDULER.SET_ATTRIBUTE(
    name => 'MY_JOB',
    attribute => 'JOB_PRIORITY',
    value => 100
  );
END;
/
删除作业计划

要删除作业计划,可以使用 DBMS_SCHEDULER.DROP_JOB 存储过程。

BEGIN
  DBMS_SCHEDULER.DROP_JOB(
    job_name => 'MY_JOB'
  );
END;
/
总结

作业计划是 Oracle 数据库中执行定时任务的重要工具。通过使用 SQL 和 Oracle 提供的存储过程,我们可以创建、管理和修改作业计划。此外,可以使用视图和其他存储过程来监视和调整作业计划的执行。

更多详细信息,请参考 Oracle 官方文档

以上为使用 SQL 创建和管理 Oracle 作业计划的简介和实例代码。