oracle游标怎么移动,Oracle定义游标

oracle 游标怎么用movenext

oracle 11g 直接用continue 关键字,例子:

成都创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为永善企业提供专业的网站设计、成都网站设计,永善网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

declare

cursor v_cur is(

select level as l from dual connect by level = 10);

i number;

begin

open v_cur;

loop

fetch v_cur

into i;

exit when v_cur%notfound;

if i = 5 then

continue; --跳出本次循环,光标移到一下一条记录

else

dbms_output.put_line(i);

end if;

end loop;

close v_cur;

end;

11g以下版本,可以使用 GOTO 语句或者自定义异常:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

declare

cursor v_cur is(

select level as l from dual connect by level = 10);

i number;

e exception;

begin

open v_cur;

loop

fetch v_cur

into i;

exit when v_cur%notfound;

begin

if i = 5 then

raise e; --通过抛出异常跳出本次循环

else

dbms_output.put_line(i);

end if;

exception

when e then

null;

end;

end loop;

close v_cur;

end;

1

2

3

declare

cursor v_cur is(

select level as l from dual connect by level = 10);

i number;

begin

open v_cur;

loop

flag

fetch v_cur

into i;

exit when v_cur%notfound;

if i = 5 then

goto flag; --通过goto跳出本次循环

else

dbms_output.put_line(i);

end if;

end loop;

close v_cur;

end;

oracle 游标的用法

第二步是打开游标,即执行FOR后面的那句select语句 ,将结果正式查询出来加载到内存中,这时游标curRESULT里就正式有数据了。

第三步是把游标结果集中当前数据记录的多个字段一个一个的赋值给几个变量,当然如果结果集和几个变量的变量个数和变量类型必须是一样的,如果不一样会出错。

第四步curRESULT%FOUND是判断curRESULT这个游标循环到当前记录是否还有记录存在。FETCH下移是移动到下一条记录,如果当前记录已经是最后一条,那他会下移到一条界外的虚拟记录,这时当你用curRESULT%FOUND去判断的时候会得到FALSE,这就是刚才为什么我们要判断curRESULT%FOUND的原因了。

oracle中的游标位置能够任意移动吗

游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。

游标的分类 :

显式游标和隐式游标

一般在存贮过程中使用。


当前文章:oracle游标怎么移动,Oracle定义游标
文章位置:http://ybzwz.com/article/dsspces.html