1.JOB的作用是什么
--oracle提供一个定期执行某个存储过程或者包体的功能。
sysdate+1 加一天
sysdate+1/24 加1小时
sysdate+1/(24*60) 加1分钟
sysdate+1/(24*60*60) 加1秒钟
定时任务的执行
DECLARE
jobid NUMBER; --声明一个job任务
BEGIN
dbms_job.submit(jobid,
'pro_name;', // 存储过程名称
To_Date('20170309 1618', 'yyyymmdd hh24mi'), //下次执行时间 null:系统时间的下一个零点
'SYSDATE+1/1440'); // 间隔多长时间执行一次 :null永不执行
END;
-- 查找所有的job(broken) Y(停止) N(运行)
select * from user_jobs;
启动/停止job: exec dbms_job.broken(4,false/true); jobId,boolean,next_date
删除job: exec dbms_job.remove(jobno);
2.编写一个JOB,定时一秒钟向一个表中插入一条数据,数据任意
--创建一个存储过程
create or replace procedure pro_job_table
as
begin
insert into job_table values(seq_user.nextval,seq_user.nextval||'job');
end;
-- 创建一个job
declare
jobId number;
begin
Dbms_Job.Submit(jobId,'pro_job_table;',to_date('20170309 172059','yyyymmdd hh24miss'),'sysdate+1/(24*60*60)');
commit;
end;