您的位置:首页 > 数据库 > Oracle

在存储过程利用游标循环执行update语句

2017-03-09 20:28 351 查看
初到公司的第一个工作任务:(用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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息