Oracle / PL SQL: CURSOR FOR LOOP 使用
FOR LOOP 介绍
为了对游标进行遍历,可以使用 FOR LOOP
语句实现,语法如下:
1 | FOR record IN cursor_name |
对游标进行 FOR LOOP
遍历时,省去了 %ROWTYPE
的声明,循环每次从查询结果中取出一行结果,当取完后,跳出循环。
1) record
record
是 FOR LOOP
语句隐式创建的 %ROWTYPE
类型变量,用于表示对游标遍历中的每一行记录。record
变量只可以用于 FOR LOOP
语句内部。
2) cursor_name
cursor_name
是显式创建的游标名称。FOR LOOP
语法除了使用显式创建的游标外,还可以直接使用 SELECT
语句来实现对游标进行遍历。
1 | FOR record IN (select_statement) |
在此用法下,FOR LOOP
将进行隐式的创建游标,打开游标,获取记录,关闭游标等操作。
FOR LOOP 例子
假设我们需要对 STUDENT
表所有记录进行遍历,STUDENT
表结构和内容如下:
STUDENT_ID | STUDENT_NAME |
---|---|
1 | Leo |
2 | Lee |
3 | Hao |
1)使用显式创建的游标
1 | DECLARE |
在上面的代码中,创建了游标 c_student
,该游标从 STUDENT
表获取所有的记录。FOR LOOP
打开游标,获取记录,输出记录字段,最后关闭游标。
2)使用 SELECT 语句的游标
以下代码与上面代码中使用显式游标的效果一样,对 STUDENT
表进行了遍历操作。
1 | BEGIN |