SQL游标

来源:互联网 发布:崩坏3rd矩阵空间 编辑:程序博客网 时间:2024/04/30 07:12

在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;LOOPFETCH emp_cursor INTO emp_record;EXIT WHEN emp_cursor%NOTFOUND;IF emp_record.sal < 2000 THENUPDATE emp SET sal = sal*1.1 WHERE CURRENT OF emp_cursor;END IF;END LOOP;END;/



原创粉丝点击