日期:2014-05-16  浏览次数:20528 次

重温Oracle(8)

第二十章 游标、函数

?

游标

游标是一种PL/SQL控制结构,可以对SQL语句的处理进行显示控制,便于对表的行数据逐条进行处理。

游标并不是一个数据库对象,只是存留在内存中。

?

操作步骤:

声明游标

打开游标

取出结果,此时的结果取出的是一行数据

关闭游标

到底那种类型可以把一行的数据都装起来?ROWTYPE类型,此类型表示可以把一行的数据都装起来。

?

使用for循环操作游标(比较常用)

Declare

? Cursor mycur is select * from emp where empno=1; --声明游标

? empInfo emp%ROWTYPE;

? cou number;

begin

? for empInfo in mycur LOOP

??? cou:= mycur%ROWCOUNT; --获取游标的所有记录数

??? dbms_output.put_line(cou||'雇员编号:'||empInfo.empno);

??? dbms_output.put_line(cou||'雇员姓名:'||empInfo.ename);

? end LOOP;

end;

/

?

使用游标输出所有信息

Declare

? Cursor mycur is select * from emp; --创建游标

? empInfo emp%ROWTYPE;

begin

OPEN mycur; --游标操作使用循环,但是在操作之前必须先将游标打开

FETCH mycur INTO empInfo; --使游标向下移一行,即游标指向第一行并赋值给empInfo

While(mycur%FOUND) LOOP

??? dbms_output.put_line('雇员编号:'||empInfo.empno);

dbms_output.put_line('雇员姓名:'||empInfo.ename);

FETCH mycur INTO empInfo; --