8.2.5 使用CURSOR FOR LOOP

游标很多机会都是迭代结果集,在PL/SQL这个过程中可以使用更简单的方式实现,CURSOR FOR LOOP不需要特别的声明变量,它可以提出行对象类型的数据。可以按照类似示例4中提取数据的方式得到列数据。详细脚本见示例5。

【示例5】使用CURSOR FOR LOOP语句提取数据

具体代码如下:


01 DECLARE

02 CURSOR cfl IS SELECT productname,productprice FROM PRODUCTINFO

03 WHERE productprice>1200;

04 BEGIN

05 FOR curcfl IN cfl

06 LOOP

07 DBMS_OUTPUT.PUT_LINE('名称:'||curcfl.productname

08 ||'产品价格:'||curcfl.productprice);

09 END LOOP;

10 END;


【代码解析】

❑第1~3行声明游标并关联查询。

❑第5行把游标返回数据放到curcfl中,该类型是个%ROWTYPE类型。

❑第6~9行迭代输出数据。

获取数据的方式和示例4大同小异,相信读者理解这部分比较容易。这里不详细介绍了。

【执行效果】

执行效果如下:


名称:夏普LCD-46G100A 产品价格:7000

名称:三星WF-R1065S/XSC 产品价格:3600

名称:三星XQB55-T86A/XSC 产品价格:2500

名称:思科RV082路由器 产品价格:2800


这种方式在隐式游标中使用更显方便,如果没有特殊需求,可以尝试使用该语句。