- 1.游标的基本概念
游标,顾名思义,类似于C/C++中的指针,是一个虚拟的概念,它是用来处理由SQL DML语句产生的结果集的数据行交互的一种手段。标准的SQL语句执行的结果是一个完整的结果集,然而我们有时候需要与数据行产生交互,那么就需要游标来实现了。
- 2.游标的几种基本用法
(1)使用for循环来遍历游标
运行结果如下
(2)通过fech读取游标中的数据到record记录类型中,然后再取出数据。使用fetch的时候必须要手动打开和关闭游标。已经关闭的游标不能再重复关闭。
(3)隐式游标,当执行SQL语句的时候,Oracle会自动创建一个游标,这个游标是处理该语句的工作区域。在使用的时候要使用隐式游标的默认名称SQL。
执行结果如下:
- 3游标的四个属性
%isopen:判断游标是否打开;
%found:如果sql语句至少影响了一行以上的数据则返回true,否则返回false;
%notfound:功能和%foun的相反;
%rowcount:返回受到影响的行数。
执行结果如下
- 4.游标变量
变量的好处就是可以实现动态化查询,根据程序的逻辑来进行选择。游标变量的基本语法:
type cur_name is ref cursor return <返回类型>;
这是一种受限游标变量,只能返回特定的类型。
这个游标只能返回csm_product表中的数据行。执行结果如下:
如果不带return返回值的话就是不受限的游标变量类型,可以未任何查询打开。
- 5使用游标的注意事项
(1)使用完成之后一定要关闭游标; (2)不能关闭已经被关闭的游标; (3)能不使用游标就不要使用游标,因为游标效率十分低下。