初到公司的第一个工作任务:(用Oracle的job定时对一个值进行累加计算);
虽然比较简单,但是由于已经两年多没有用过存储过程和游标这些了,所以重新温习了下;
记下笔记
========创建存储过程,定义游标循环执行update语句
create or replace procedure JOBTCOUNT as begin declare cursor emp_cur is select T_COUNT from JOB_T_BUSINESS_COUNT for update ; begin for emp_row in emp_cur loop update JOB_T_BUSINESS_COUNT set T_COUNT=T_COUNT+0.5 where current of emp_cur; end loop; commit; end; end; ==========创建job任务每秒执行一次 SQL> variable jobbusinesscount number; SQL> begin 2 dbms_job.submit(:jobbusinesscount,'JOBTCOUNT;',sysdate,'sysdate+1/86400'); 3 end; 4 / ========启动job任务 SQL> begin 2 dbms_job.run(:jobbusinesscount); 3 end;4 /
========删除job任务 SQL> begin 2 dbms_job.remove(:jobbusinesscount); 3 end;
4 /
===查询job select * from dba_jobs
=======启动job(登陆用户为创建该job的属主)
exec DBMS_JOB.broken(22,false);
==停止
exec DBMS_JOB.broken(22,true);