1. 分类
常见的游标可分为显示游标、隐式游标、静态游标和动态游标四大类:
1.1 显示游标
显式是相对与隐式cursor而言的,就是有一个明确的声明的cursor。显式游标的声明类似如下:
delcare 游标关键字cursor 游标名 is 数据集;
游标从declare、open、fetch、close是一个完整的生命旅程。当然了一个这样的游标是可以被多次open进行使用的,显式cursor是静态cursor,她的作用域是全局的,但也必须明白,静态cursor也只有pl/sql代码才可以使用她。下面看一个简单的静态显式cursor的示例:
1 declare 2 cursor get_subid(pid a_test.parentid%type) is 3 select subid from a_test where parentid = pid; 4 v_subid a_test.subid%type; 5 begin 6 open get_subid(1); 7 loop 8 fetch get_subid 9 into v_subid; 10 exit when get_subid%notfound; 11 dbms_output.put_line(v_subid); 12 end loop; 13 close get_subid; 14 dbms_output.put_line('--------这是分割线----------'); 15 open get_subid(4); 16 loop 17 fetch get_subid 18 into v_subid; 19 exit when get_subid%notfound; 20 dbms_output.put_line(v_subid); 21 end loop; 22 close get_subid; 23 end;