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官方文档来了解更多信息。