初到公司的第一个工作任务:(用Oracle的job定时对一个值进行累加计算);
虽然比较简单,但是由于已经两年多没有用过存储过程和游标这些了,所以重新温习了下;
记下笔记
========创建存储过程,定义游标循环执行update语句
create or replace procedure JOBTCOUNT asbegin
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);