在应用系统中,ORACLE JOB结合存储过程可以实现定时作业,用起来也非常简单。下面介绍一个简单的例子。
1.新建一个table,表名为t_job_test。
-- Create table
create table T_JOB_TEST
(
INSERT_TIME DATE
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table T_JOB_TEST
is 'test for job';
2.新建一个procedure:
create or replace procedure p_test_4_job is
begin
insert into t_job_test values (sysdate);
end p_test_4_job;
3.新建一个job:
variable jobID number;
begin
sys.dbms_job.submit(job => :jobID ,
what => 'p_test_4_job;', --这个参数就是定期执行的任务
next_date => to_date('13-03-2008 17:29:03', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/1440');
commit;
end;
好了,这样新建的job就可以运行了。这个job实现了每隔一分钟向表t_job_test中插入一条记录的功能。
现在可以查询t_job_test中的数据做下检验了 :)