说明:本文乃我的同事陈为的原创
功能说明:实现定时插入数据(此DEMO实现每分钟插入一条数据)。
1、创建测试表格和自增序列:
create table TEST
(
ID NUMBER,
NAME VARCHAR2(100),
SEX NUMBER,
TIME DATE
);
create sequence TEST_JOB
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20;
2、编写存储过程:
create or replace procedure P_test
is
begin
insert into test values(test_job.nextval,'123',1,sysdate);
commit;
end P_test;
3、创建JOB,定时执行存储过程:
declare jobno number;
begin
dbms_job.submit(jobno,'P_test;',sysdate,'sysdate+1/1440');
commit;
end;
其中:sysdata标记的是执行开始时间,'sysdate+1/24/60'处标记执行间隔(此处为每分钟)
另:7天后午夜:TRUNC(SYSDATE+7)
每天午夜2点:TRUNC(SYSDATE+1,'DD')+ 2 / 24
4、查看执行中的JOB:
select job,next_date,next_sec,broken,interval,failures,what from user_jobs
5、关闭JOB:
begin
dbms_job.remove(44);
commit;
end;
(其中:44为job编号)