Oracle关于作业操作

一、启动SQL*PLUS Worksheet

 

二、创建启动作业:

2.1、创建启动作业代码

variable jobno1 number;
begin
    dbms_job.submit(:jobno1,'qy_main;',sysdate,'trunc(sysdate+30,''MM'')+24');
    dbms_job.run(:jobno1);
    commit;
end;

2.2、创建启动作业的规则如下

VARIABLE JOB NUMBER;
BEGIN
  DBMS_JOB.SUBMIT(
    JOB => :JOB,  /*自动生成JOB_ID*/
    WHAT => 'CREATE_TASK_BY_PLAN;',  /*需要执行的过程或SQL语句*/
    NEXT_DATE => TRUNC(SYSDATE+1)+6/24,  /*初次执行时间*/
    INTERVAL => 'TRUNC(SYSDATE+1)+6/24');  /*执行周期*/

  DBMS_JOB.RUN(:JOB);   /* :JOB为自动生成JOB_ID*/
    COMMIT;
END;

2.3、创建启动作业注意事项
(1)写submit时候job号前加“:” ,如::jobno1
(2)存储过程名称后加“;”
(3)初次执行时间不用“'”扩上

 

三、删除作业

在Worksheet中用代码删除作业。

3.1.1、删除作业代码

begin
    dbms_job.REMOVE(82);    /*83为自动生成的作业号码*/
end;

3.1.2、获取作业号码代码

select job,last_sec,next_sec from user_jobs;/*根据检索的相关信息获得将要删除的作业号码。*/

3.1.3、删除作业的规则如下

BEGIN
    DBMS_JOB.REMOVE(:JOB);   /* :JOB为自动生成JOB_ID*/
END;

3.2 、方法二

可以登录PL/SQL在job文件夹里找到想要删除的作业,右键drop直接删除

 

四、修改作业

修改作业一般是对作业的下次执行时间和时间间隔进行修改,修改的方法如下:

4.1、方法一

在Worksheet中用代码修改下次执行时间和时间间隔

4.1.1、修改下次执行时间
4.1.1.1、修改下次执行时间代码

begin
    dbms_job.next_date(82,trunc(sysdate)+1+3.5/24);
end;

4.1.1.2、修改下次执行时间的规则

Begin
    dbms_job.next_date(:job,next_date); /*:job 为将要修改的作业号码,next_date 为将要改为的下次执行时间*/
end;

4.1.2、修改作业时间间隔
4.1.2.1、修改作业时间间隔代码

begin
    dbms_job.interval(82,'trunc(sysdate)+20+3.5/24');
end;

4.1.2.2、修改时间间隔代码规则

Begin
    dbms_job.interval(job,interval); /*:job 为将要修改的作业号码,interval 为将要改为的时间间隔,注意不要忘记引号*/
end

4.1.2.3、可供参考的时间间隔

trunc(sysdate,'yyyy'--返回当年第一天.
trunc(sysdate,'mm'--返回当月第一天.
trunc(sysdate,'d'--返回当前星期的第一天.
'TRUNC(SYSDATE + 1)'   --每天午夜12点 
'TRUNC(SYSDATE) + (8*60+30)/(24*60)'   --每天早上8点30分

4.2、方法二
可以登录PL/SQL在job文件夹里找到想要修改的作业,右键Edit直接修改,修改后需要保存重新登录生效。





posted @ 2012-05-30 12:05  tohen  阅读(1127)  评论(0)    收藏  举报