游标(二)

游标FOR循环
游标FOR循环是游标使用的最简单的方式,当使用游标FOR循环时,Oracle会隐含地打开游标、提取游标
数据并关闭游标。
语法格式: FOR record_name IN cursor_name Loop
statement1;
statement2;
end Loop;
cursor_name是已经定义的游标名;record_name是Oracle隐含定义的记录变量名(可以是任意名)
当使用游标FOR循环时,在执行循环体内容之前,Oracle会隐含地打开游标,并且每循环一次提取一次
数据,在提取了所有数据之后,会自动退出循环并隐含地关闭游标。
例子: declare
CURSOR emp_cursor IS select ename,sal from emp;
begin
FOR emp_record IN emp_cursor LOOP
dbms_output.put_line();
END LOOP;
end;
使用游标变量---打开游标变量时指定其所对应的select语句。
游标变量使用步骤:
(1)定义REF CURSOR类型和游标变量
语法如下: TYPE ref_type_name IS REF CURSOR[RETURN return_type];
cursor_variable ref_type_name;
ref_type_name 用于指定自定义类型名;
cursor_variable 指定游标变量名.
当使用指定return子句时,其数据类型必须是记录类型;
(2)打开游标
open cursor_variable for select_statement;
(3)提取游标、关闭游标。
eg: declare
TYPE emp_record_type IS RECORD(name VARCHAR2(10),salary NUMBER(6,2));
TYPE emp_cursor_type IS REF CURSOR RETURN emp_record_type;
emp_cursor emp_cursor_type;
emp_record emp_record_type;
begin
open emp_cursor for select ename,sal from emp where deptno=20;
Loop
FETCH emp_cursor INTO emp_record;
EXIT WHEN emp_cursor%NOTFOUND;
dbms_output.put_line();
end Loop;
close emp_cursor;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值