Oracle创建定时任务

2017.8.10 oracle

1、创建一张表

CREATE TABLE a(a DATE);

2、创建一个自定义过程

CREATE OR REPLACE PROCEDURE TEST AS 
BEGIN 
    INSERT INTO a VALUES(SYSDATE); 
END; 

3、创建JOB 设定1分钟执行一次该任务(在Command Window命令行执行)

variable job1 number;
begin
dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次
commit;
end;
/

4.运行job

BEGIN 
dbms_job.run(:job1); 
END; 
/

其中:job1是生成的作业号

用户需要有创建作业权限,用system用户登录授权

grant create job to user_name;

更新列表:

上面的创建定时任务的方法是PL/SQL实现的,代码比较多,而使用Oracle SQL Developer可以使用可视化的方式进行新建定时任务,定时策略可以自由选择,

在新建定时任务后,选择的任务是执行存储过程,遇到执行不了的情况:

Oracle运行JOB报ORA-27492:无法运行作业

是因为job_queue_processes值为0导致的

查看语句
SQL> show parameter job_queue_processes

修改语句
SQL> alter system set job_queue_processes=50 scope=both; 

可以在Oracle SQL Developer右键作业->运行作业进行调试

参考文章:

相关阅读