Oracle Job的使用心得

来源:互联网 发布:red5 fms nginx 编辑:程序博客网 时间:2024/05/29 13:50

Oracle中的Job能帮你定时的自动完成一些机械的任务,例如你可以定时在晚上12点备份数据库,或者是你可以在某个时间触发一些数据操作。

创建一个Job很简单,创建Job的方法如下:

dbms_job.submit(
        job out number,
        what in varchar2,
        next_date in date,
        interval in vachar2
        );

其中,job是输出值,返回新Job的序号,该序号唯一标示此Job

what 是触发的操作,你可以写一个存储过程放在此处触发

next_date 是下次触发的时间

interval 是触发的时间间隔 如'sysdate+1'表示间隔一天  如果间隔一小时则为'sysdate+1/24'

 

设一个Job的序号为JobID

要运行一个Job,只需要dbms_job.run(JobID);

停止一个Job: dbms_job.broken(JobID);

删除一个Job: dbms_job.remove(JobID);

 

举一个例子,我有一个存储过程ProcTest,

要每天零点时触发,现在新建一个Job并运行它

variable job number;
begin
        dbms_job.submit(
        job => :job,
        what => 'ProcTest',
        next_date => to_date('09-12-2008 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
        interval => 'sysdate+1'
        );
        commit;
        dbms_job.run(:job);

end;

应当注意的是,以上命令要在Command(命令)窗口执行