我们一般在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数据库增加计划任务的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】