网站首页  |  业界新闻  |  技术文章  |  视频教程  |  下载频道  |  程序源码  |  个人空间  |  编程论坛
 
学习型 ASP/PHP/ASP.NET 主机 30元/年 全能 ASP/PHP/ASP.NET 主机,支持月付 专业 MSSQL 数据库空间,支持月付 专业 MySQL 数据库空间,支持月付
发新话题
打印

请问怎么将游标指针再次指向结果集首行

请问怎么将游标指针再次指向结果集首行

大家好,最近正在学习oracle 有个问题想请教下
比如我想实现下面一个功能
每月工资总额不多于100000元,现在为每一位员工增长工资,比如先都增长10%,如果增长后还不到100000元,继续将游标指针再次指向结果集首行,继续遍历,我想请问怎么将游标指针再次指向结果集首行?
谢谢了

TOP

游标是不能回退的,不过可以通过在函数里调用自身来实现递归。
天下归心

TOP

好的 看来我需要把定义和使用游标的语句写在循环中了 谢谢

TOP

declare
  vTemp number := 0;
begin
  while vTemp = 0
  loop
    declare
      cursor cur_sal is select sal from emp order by sal for update of sal;
      vSum number;
    begin
      for dz in cur_sal
      loop
        select sum(sal) into vSum from emp;
        if (vSum + dz.sal*0.2) <= 100000 then
          update emp set sal = sal * 1.2 where current of cur_sal;
        else
          vTemp := 1;
          exit;
        end if;
      end loop;
    end;
   
    --exit when vTemp = 1;
  end loop;
end;
这是我根据题目写的代码 可总是死循环 请大家帮忙看看是哪里的问题

TOP

发新话题