经常在SQL Server上创建作业去定时执行某些任务,在Oracle下则一般都是通过编码的方式,通过项目自带的计划任务框架去调用存储过程。今天才发现,原来Oracle下创建一个计划任务要比SQL Server简单的多。
1、创建计划任务: Sql代码 X NUMBER; GIN SYS。 DBMS_JOB。SUBMIT(job =>X, what =>'PROC_YKTSJTB;',--存储过程名称 next_date =>trunc(sysdate+5/1440,'MI'),--下次执行时间 interval =>'trunc(sysdate+1440/1440,''MI'')',--间隔时间 no_parse =>FALSE); SYS。 DBMS_OUTPUT。PUT_LINE('Job Number is: ' || to_char(x)); COMMIT; D; X NUMBER; BEGIN SYS。DBMS_JOB。SUBMIT(job =>X, what =>'PROC_YKTSJTB;',--存储过程名称 next_date =>trunc(sysdate+5/1440,'MI'),--下次执行时间 interval =>'trunc(sysdate+1440/1440,''MI'')',--间隔时间 no_parse =>FALSE); SYS。 DBMS_OUTPUT。 PUT_LINE('Job Number is: ' || to_char(x)); COMMIT; END; 以上主要注意三个参数: what :需要计划任务执行的动作; next_date:下次计划任务执行的时间,具体时间可以根据oracle的trunc构造; interval:计划任务的执行周期;
2、计划任务执行情况监控 Sql代码 select * from user_jobs;--查看调度任务 select * from dba_jobs_running;--查看正在执行的调度任务 select * from dba_jobs;--查看执行完的调度任务 编辑特别推荐: oracle认证考试费用 查看修改ORACLE10G归档日志空间的限制。