1、Oracle中的游标不同于Java中的迭代器。作为迭代器,它在开头指向第一个元素之前,遍历之后,指向最后一个元素之后。光标打开后,指向第一行记录;
2、声明
3、-
4、1声明游标;
5、cursorccisselectename,salfromemp
6、nameemp.ename%type
7、salaryemp.sal%type;
8、开始
9、-
10、2打开光标;
11、opencc
12、-
13、3使用光标;
14、fetchccintoname,工资;
15、show(‘name:’||name||’,salary:’||salary);
16、-
17、4关闭光标;
18、closecc
19、结束;
20、/
21、光标的属性;
22、找到1个光标%;存在记录;
23、2找不到光标%;没有记录;
24、3游标%rowcount当前遍历的是哪一行?
25、4cursor%isopen是否开放;
26、遍历;
27、声明
28、-
29、1声明游标;
30、cursorccisselectename,salfromemp
31、nameemp.ename%type
32、salaryemp.sal%type;
33、开始
34、-
35、2打开光标;
36、opencc
37、-
38、3使用光标;
39、环
40、exitwhencc%未找到;
41、fetchccintoname,工资;
42、show(‘||cc%rowcount);
43、show(‘name:’||name||’,salary:’||salary);
44、结束循环;
45、-
46、4关闭光标;
47、closecc
48、结束;
49、/
50、另一种方法是使用游标遍历表,使用for循环。使用for遍历时,不需要显式打开和关闭游标;在这种情况下,我们把光标看作一个“数组或集合”,用一个光标变量作为“元素”来执行;
51、声明
52、-声明光标;
53、cursorccisselectename,salfromemp
54、开始
55、forcinccloop
56、show(‘ename:’||c.ename||’,sal:’||c.sal);
57、结束循环;
58、结束;
59、/
60、使用for循环用游标遍历表时,游标作为一个集合使用,而循环中的临时变量作为每行的记录使用;
61、声明
62、-声明光标;
63、cursorccisselect*fromemp
64、开始
65、forcinccloop
66、show(‘||c.hiredate||’,’||c.deptno||’,’||c.sal);
67、结束循环;
68、结束;
69、/
