自动运行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每天都自动执行从而实现“天天不落旗”的理想,提高工作效率。