标题:请问怎么将游标指针再次指向结果集首行
只看楼主
非凡DZ
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2007-4-6
 问题点数:0 回复次数:3 
请问怎么将游标指针再次指向结果集首行
大家好,最近正在学习oracle 有个问题想请教下
比如我想实现下面一个功能
每月工资总额不多于100000元,现在为每一位员工增长工资,比如先都增长10%,如果增长后还不到100000元,继续将游标指针再次指向结果集首行,继续遍历,我想请问怎么将游标指针再次指向结果集首行?
谢谢了
搜索更多相关主题的帖子: 游标 指针 结果 
2008-05-05 20:21
ILoveMK
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:487
专家分:0
注 册:2007-2-12
得分:0 
游标是不能回退的,不过可以通过在函数里调用自身来实现递归。

天下归心
2008-05-05 20:44
非凡DZ
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2007-4-6
得分:0 
好的 看来我需要把定义和使用游标的语句写在循环中了 谢谢

2008-05-05 20:47
非凡DZ
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2007-4-6
得分:0 
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;
这是我根据题目写的代码 可总是死循环 请大家帮忙看看是哪里的问题

2008-05-06 12:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-212552-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.191380 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved