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 |