一、
首先还是得有个存储过程,假如名称是myproc。
二、
建立JOB,在 命令行 下:
Sql代码
1.VARIABLE JOB_NO NUMBER;
2.begin
3. dbms_job.submit(:JOB_NO,
4.'myproc;',
5. sysdate,
6.'sysdate+1/1440');
7.commit;
8.end;
VARIABLE JOB_NO NUMBER;
begin
dbms_job.submit(:JOB_NO,
'myproc;',
sysdate,
'sysdate+1/1440');
commit;
end;
其中JOB_NO是该作业的唯一标识,这里由系统生成。
存储过程名后面要接一个分号。
sysdate+1/1440表示每分钟执行一次。
如果想定在某个时间执行,例如隔N天的M点执行。
则为TRUNC(SYSDATE+N)+M*60/(24*60)。
三、
查看数据库中的JOB:
Sql代码
1.SELECT * FROM dba_jobs;
SELECT * FROM dba_jobs;
其中what字段表示作业需要执行的存储过程名称。
四、
根据JOB ID删除JOB:
Sql代码
1.begin
2. dbms_job.remove(jobid);
3.commit;
4.end;
begin
dbms_job.remove(jobid);
commit;
end;
必须在命令行下执行。
五、
根据JOB ID停止JOB:
Sql代码
1.SQL> execute dbms_job.broken(702, true);
2.PL/SQL procedure successfully completed
3.SQL> commit;
4.Commit complete
SQL> execute dbms_job.broken(702, true);
PL/SQL procedure successfully completed
SQL> commit;
Commit complete其中的702就是JOB ID,要commit。必须在命令行下执行。
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow