一、
首先还是得有个存储过程,假如名称是myproc。
二、
建立JOB,在 SQL行 下:
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:
SELECT * FROM dba_jobs;
其中what 字段表示作业需要执行的存储过程名称。
四、
根据JOB ID删除JOB:
begin
dbms_job.remove(jobid);
commit;
end;
必须在命令行 下执行。
五、
根据JOB ID停止JOB:
SQL> execute dbms_job.broken(702, true);
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
其中的702就是JOB ID,要commit。必须在命令行下执行。