SQL游标

在Oracle数据库中

游标包含隐含游标和显式游标。其中隐含游标又被称作SQL游标,它专门用于处理SELECT INTO、INSERT和UPDATE以及DELETE语句。

而显式游标用于处理多行的SELECT语句。

 oracle 游标有4个属性: %ISOPEN , %FOUND , %NOTFOUND, %ROWCOUNT。

(1)%ISOPEN 判断游标是否被打开,如果打开%ISOPEN 等于true,否则等于false

(2)%FOUND 和%NOTFOUND 判断游标所在的行是否有效,如果有效,则%FOUND等于true,否则等于false

(3)%ROWCOUNT 返回当前位置为止游标读取的记录行数。


1、使用显式游标

为了处理SELECT返回的多行数据,开发人员可以使用显式游标。使用显式游标包括:

(1)定义游标

CURSOR cursor_name IS select-statement;


(2)打开游标

OPEN cursor_name


(3)提取数据

游标打开之后,SELECT语句的结果被临时存到游标结果集中,为了提取结果集中的数据,需要使用FETCH语句提取游标数据。

FETCH cursor_name INTO variable1,varable2,variable3.......(需要使用循环来处理游标结果集的所有数据)


(4)关闭游标

CLOSE cursor_name;



eg.

--语句块,批量执行语句,工资低于2000的加上10%。

DECLARE 
CURSOR emp_cursor IS 
SELECT ename,sal FROM emp FOR UPDATE;
emp_record emp_cursor%ROWTYPE;
BEGIN 
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO emp_record;
EXIT WHEN emp_cursor%NOTFOUND;
IF emp_record.sal < 2000 THEN
UPDATE emp SET sal = sal*1.1 WHERE CURRENT OF emp_cursor;
END IF;
END LOOP;
END;
/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值