我经常在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数据库增加相应的计划任务的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】
- Oracle提高SQL的执行效率的3种好用方法
- Oracle通过其实际存储过程中返回相关数据集
- Oracle数据库中的时间处理的实际操作步骤
- Oracle临时表用法的经验心得
- Oracle数据文件的特性介绍