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、/

发表评论

后才能评论