一、启动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直接修改,修改后需要保存重新登录生效。