Oracle作业新建步骤完整攻略(oracle作业新建)

Oracle作业:新建步骤完整攻略

在Oracle数据库中,作业是任务的集合,这些任务可以定期执行,也可以在指定的时间点执行。Oracle提供了一个强大的作业调度器来管理作业。本文将介绍Oracle作业的创建过程,以及如何将作业添加到调度器中。同时,文章还将涵盖Oracle作业的相关代码,以帮助读者更好地理解。

1. 创建作业

要创建一个Oracle作业,我们可以使用DBMS_SCHEDULER.CREATE_JOB过程。创建工作的最小要求是定义工作名称和工作类型。以下是创建作业的基本步骤:

BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'job_name',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN ... END;',
enabled => TRUE,
comments => 'add your comments here');
END;

在上面的代码中,job_name是要创建的作业的名称,job_type是作业的类型,job_action是作业执行的代码块,enabled指定作业是否启用,comments是一个描述作业的字符串。

2. 定义作业计划

一个作业计划定义了作业执行的时间和频率。例如,我们可以让一个作业每天早上8点自动执行,或每个小时执行一次。Oracle给了我们很多选项来定义作业的计划。

我们可以使用DBMS_SCHEDULER.PREPARE_DATE函数来指定作业计划开始执行的日期和时间,如下所示:

l_date := to_date('2020/01/01 08:00:00', 'yyyy/mm/dd hh24:mi:ss');
DBMS_SCHEDULER.PREPARE_DATE(l_date, 'LOCAL');

我们还可以使用DBMS_SCHEDULER.CALENDAR_SCHEDULE来定义日历时间表,以便在指定日期和时间执行作业,如下所示:

BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE(
schedule_name => 'my_schedule',
start_date => to_date('2020/01/01 08:00:00', 'yyyy/mm/dd hh24:mi:ss'),
repeat_interval => 'FREQ=DLY;BYHOUR=8;BYMINUTE=0;BYSECOND=0',
comments => 'add your comments here');
END;

上面的代码将在每天早上8点定时执行。

3. 添加作业到调度器中

在我们定义了一个作业和一个作业计划之后,下一步是将它们添加到调度器中。我们可以使用DBMS_SCHEDULER.ADD_JOB_SCHEDULE过程来完成这个任务,如下所示:

BEGIN
DBMS_SCHEDULER.ADD_JOB_SCHEDULE(job_name => 'job_name',
schedule_name => 'my_schedule');
END;

该代码将在my_schedule日历时间表中执行job_name作业。

4. 启动作业

现在,我们已经定义了一个作业和作业计划,并将其添加到调度器中。接下来,我们需要启动作业以便它能够执行。我们可以使用DBMS_SCHEDULER.RUN_JOB过程来启动作业,如下所示:

BEGIN
DBMS_SCHEDULER.RUN_JOB(job_name => 'job_name');
END;

上面的代码将开始执行job_name作业。

5. 修改作业

如果需要更改作业,我们可以使用DBMS_SCHEDULER.SET_ATTRIBUTE过程来修改它。例如,我们可以更改作业的作业代码块(job_action),如下所示:

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'job_name',
attribute => 'job_action',
value => 'BEGIN ... END;');
END;

代码中的“job_action”代表要更改的属性。我们可以使用其它参数来修改其它属性。

6. 删除作业

如果不需要作业,我们可以使用DBMS_SCHEDULER.DROP_JOB过程将其删除,如下所示:

BEGIN
DBMS_SCHEDULER.DROP_JOB(job_name => 'job_name');
END;

上面的代码将删除job_name作业。

总结

在本文中,我们介绍了如何使用Oracle数据库中的DBMS_SCHEDULER包来创建、定义、添加、启动、修改和删除作业。我们还提供了相应的代码作为参考。当然,还有很多高级的功能,如创建复杂的作业计划、使用作业重试机制等,读者可以查阅Oracle官方文档来了解更多信息。


数据运维技术 » Oracle作业新建步骤完整攻略(oracle作业新建)