| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1727 人关注过本帖
标题:请问怎么将游标指针再次指向结果集首行
只看楼主 加入收藏
非凡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
快速回复:请问怎么将游标指针再次指向结果集首行
数据加载中...
 
   



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

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