HELLO,WORLD

oracle定时器

/* 每10秒钟执行一次 插入一条时间 */ 
-- 创建table
create table tab_time(       
       current_time timestamp      
); 

-- 创建存储过程
create or replace procedure pro_job_print
as   
begin       
  --dbms_output.put_line('系统时间:' || to_char(sysdate, 'dd-mm-yyyy hh24:mi:ss'));       
  insert into tab_time values(sysdate);   
  end;   
  
-- 调用过程测试  
begin   
  pro_job_print;   
 end;  
 
 --select 24 * 60 * 60 from dual;    
-- 创建job
declare         
   job1 number;
begin   
  dbms_job.submit(job1, 'pro_job_print;', sysdate, 'sysdate+10/86400');--每10插入一条记录
  end;
  
--相关视图
select * from dba_jobs;
select * from all_jobs;
select * from user_jobs;
-- 正在运行job
select * from dba_jobs_running; 

-- 运行job
begin   
  dbms_job.run(5);--和select * from user_jobs; 中的job值对应,看what对应的过程
  end;  

-- 查询是否插入数据
select to_char(current_time, 'dd-mm-yyyy hh24:mi:ss') current_time from tab_time order by current_time; 

-- 删除一个job
begin   
  dbms_job.remove(6);--和select * from user_jobs; 中的job值对应,看what对应的过程
  end;

begin
show parameter job_queue_process;
end;

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

 

posted @ 2016-11-09 16:20  秦正全  阅读(216)  评论(0编辑  收藏  举报