最简单的一个Oracle定时任务

一、在PLSQL中创建表:

create table HWQY.TEST

(

CARNO     VARCHAR2(30),

CARINFOID NUMBER

)

二、在PLSQL中创建存储过程:

create or replace procedure pro_test

AS

carinfo_id number;

BEGIN

select s_CarInfoID.nextval into carinfo_id

from dual;

insert into test(test.carno,test.carinfoid) values(carinfo_id,'123');

commit;

end pro_test;

三、在SQL命令窗口中启动任务:

在SQL>后执行:

VARIABLE jobno number;

begin

DBMS_JOB.SUBMIT(:jobno,

'pro_test;',

SYSDATE,'sysdate+1/24/12');

commit;

end;

/

提交后提示:

PL/SQL procedure successfully completed

jobno

---------

1

四、跟踪任务的情况(查看任务队列):

SQL> select job,next_date,next_sec,failures,broken from user_jobs;

JOB NEXT_DATE   NEXT_SEC           FAILURES BROKEN

---------- ----------- ---------------- ---------- ------

1 2008-2-22 ?01:00:00                  0 N

说明有一个任务存在了。

执行select * from test t查看定时任务的结果。可以看出定时任务是正常执行了的。

五、停止已经启动的定时任务:

先执行select job,next_date,next_sec,failures,broken from user_jobs;

以查看定时任务的job号。

在SQL>中执行下面的语句停止一个已经启动的定时任务:

begin

dbms_job.remove(1);

commit;

end;

/

表示停止job为1的任务。

执行后显示如下:

PL/SQL procedure successfully completed

六、查看进程数:

show parameter job_queue_processes;

必须>0,否则执行下面的命令修改:

alter system set job_queue_processes=5;

七、再创建一个任务(每5分钟执行一次):

variable jobno number;

begin

dbms_job.submit(:jobno, 'pro_test;',

sysdate,'sysdate+1/24/12');

commit;

end;

/

建立一个定时任务后,在PLSQL中查看JOB,它的sql语句类似的是

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐