自动运行Oracle Job自动执行:天天不落(oraclejob每天)

自动运行Oracle Job天天不落旗是数据库开发人员的理想,特别是当需要定期运行很多SQL jobs时,使用Oracle自动运行Oracle job就非常重要了。本文介绍了如何设置让Oracle Job自动运行,包含创建自动任务,绑定执行器到表中,以及管理自动任务。

1. 创建自动任务:使用DBMS_SCHEDULER包来创建自动任务,通过如下PL/SQL语句进行:

–创建自动任务 -MyAutoTask

BEGIN

DBMS_SCHEDULER.create_job(

job_name => ‘MyAutoTask’,

job_type => ‘PLSQL_BLOCK’,

job_action => ‘begin

execute immediate ”call sp_name_seq(”);

end;’,

enabled => true,

comments => ‘My auto task’);

END;

/

2. 绑定执行器到表中:使用DBMS_SCHEDULER.SET_ATTRIBUTE来绑定执行器到表中,以下是一个简单示例:

–绑定执行器到MyAutoTask

BEGIN

DBMS_SCHEDULER.set_attribute(

name => ‘MyAutoTask’,

attribute => ‘schedule’,

value => ‘FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=9,15; BYMINUTE=0;’);

END;

/

示例中,设定MyAutoTask任务每天上午9点,下午3点启动执行。更多调度参数参见Oracle 文档参考。

3. 管理自动任务:可以使用DBMS_SCHEDULER来管理创建的自动任务,可以使用{\bf DBMS_SCHEDULER.ENABLE}或{\bf DBMS_SCHEDULER.DISABLE}来更改自动任务的状态,以及使用{\bf DBMS_SCHEDULER.DROP_JOB}来删除一个自动任务。比如,要对MyAutoTask停止一段时间的执行,可以使用如下语句:

–停止MyAutoTask的执行

BEGIN

DBMS_SCHEDULER.DISABLE(

NAME => ‘MyAutoTask’);

END;

/

另外,管理自动任务也可以使用Oracle Enterprise Manager。通过Oracle Enterprise Manager,可以查看已经创建好的自动任务,可以直接编辑调度参数,也可以直接删除指定的自动任务。

本文介绍了如何使用DBMS_SCHEDULER让Oracle Job自动执行,具体操作步骤涉及:创建自动任务,绑定执行器到表中,以及管理自动任务。使用这些步骤,可以让Oracle job每天都自动执行从而实现“天天不落旗”的理想,提高工作效率。


数据运维技术 » 自动运行Oracle Job自动执行:天天不落(oraclejob每天)