一、基础环境
操作系统:Windows 或 Linux
数据库版本:Oracle Database 11.2.0.1.0 及以上版本
二、具体步骤
1、查询当前用户所有的调度作业
select * from user_jobs
2、创建调度作业
declare
job_id pls_integer;
begin
sys.dbms_job.submit(job => job_id,
what => '存储过程名称;',
next_date => sysdate,
interval => 'trunc(sysdate+1)');
commit;
end;
/
说明:其中
what 是 需要执行的存储过程名称,需要以半角分号结尾,并使用单引号包起来。存储过程不能有传入参数和传出参数。
next_date 是下次执行时间,一般可以指定为 sysdate
interval 是 周期,需要使用单引号包起来。以下是常用的周期代码
代码 | 说明 |
---|---|
trunc(sysdate+1) | 每天0:00:00 |
trunc(last_day(sysdate))+1+1/24 | 每月1日 1:00:00 |
3、删除调度作业
begin
dbms_job.remove(job_id);
commit;
end;
/
说明:其中 job_id 是 user_jobs 的 job 字段值。