游标是构建在PL/SQL中,用来查询数据,获取记录集合的指针。当PL/SQL游标查询返回多行数据时,这些记录组被称为活动集。Oracle将这种活动集储存在已创建的显示定义的已命名的游标中。Oracle游标是一种用于轻松地处理多行数据的机制,如果没有游标,Oracle开发人员必须单独的、显示地取回并管理游标查询选择的每一条记录。游标的另一个功能是,它包含一个跟踪当前记录访问的指针,这使程序能够一次处理多条记录。
在Oracle中提供了两种游标类型:
1.静态游标:静态游标实在编译时知道其SELECT语句的游标。静态游标又分为两种类型,隐式游标和显示游标。
1)隐式游标:PL/SQL为所有SQL数据操纵语句(包括返回一行的select)隐式声明游标,成为隐式游标的原因使用户不能直接命名和控制此类有标。由于隐式游标没有名称,所以隐式游标也可以叫做SQL游标,通过检查隐式游标的属性可以获取与最近执行的SQL语句相关的信息。
属性包括:%FOUND %NOTFOUND %ROWCOUNT %ISOPEN
2)显示游标:显示游标是由用户显示声明的游标。根据在游标中定义的查询,查询返回的行集可以包括零行或多行,这些行称之为活动集。游标将指向活动集中的当前行。
步骤:声明游标 打开游标 从游标取回数据 关闭游标
2.循环游标:可以使用循环油表简化显式游标的处理代码。循环游标隐式打开游标,自动从活动集中获取行,然后再处理完所有行时关闭游标。循环游标自动创建%rowtype类型的变量并将此变量用做记录索引。
语法:FOR <record_index> IN <cursor_name> LOOP <executable statements> END LOOP;