Oracle任务计划:优化工作效率(oracle任务计划)
现在越来越多的人工作都非常忙碌,因此,优化工作效率的需求变得非常迫切。尤其是面对需要处理大量重复性任务的情况,如果能利用相应工具来自动执行一些任务,那对大大提高工作效率将有很大帮助。在Oracle数据库中,有一种叫做”任务计划”的功能,可以帮助实现上述功能。它可以自动为我们完成每日/每周/每月单/重复性任务,让我们更轻松地安排工作并大大提高工作效率。
要使用Oracle任务计划,首先需要一个具有”任务计划管理员”权限的用户。之后,我们可以使用PL/SQL或控制台的图形界面来管理任务计划。下面是一个建立任务计划的PL/SQL例子:
— — Set the values for the job — SET serveroutput on format wrapped DECLARE l_job BINARY_INTEGER; BEGIN — — Create the job — l_job := DBMS_JOB.SUBMIT( job => l_job, what => ‘begin null; end;’, next_date => SYSDATE, interval => ‘sysdate + 1’ ); — — Job created — DBMS_OUTPUT.PUT_LINE(‘Job #’ || l_job || ‘ created’); DBMS_JOB.SUBMIT( job => l_job, what => ‘begin null; end;’ ); END;
上面这段代码中,我们建立了一个名叫l_job的任务计划,下次执行的时间点是当前时间的第二天(sysdate + 1)。部分参数的意义如下:what:任务行为;Next_Date:下次执行的时间点;Interval:执行的间隔,上述的设置为每天一次。
如果要改变这个任务的状态及选项,可以使用“DBMS_JOB.CHANGE”更改相应项:
— — Set the values for the job — set serveroutput on format wrapped DECLARE l_job BINARY_INTEGER; BEGIN — — Change job — DBMS_JOB.CHANGE( job => l_job, — Job number interval => ‘sysdate + 7’); — Set search interval DBMS_OUTPUT.PUT_LINE(‘Job #’ || l_job || ‘ changed’); DBMS_JOB.SUBMIT(job => l_job); END;
上面这段代码中,我们使用DBMS_JOB.CHANGE将任务间隔更改为每7天一次(sysdate + 7)。
任务计划也可以用文件启动,只要将文件写入到ORACLE_HOME/bin,之后我们可以使用dbstar命令来执行文件中的程序:
DBSTAR FOO.SQL
使用任务计划可以大大提高工作效率,比如可以每天自动清理无用的日志文件,每周自动记录某个报表的备份等。与其花费时间来完成大量的重复任务,不妨利用任务计划来减轻工作量,从而更轻松地完成任务,优化工作效率。