Oracle 基础的游标的使用

基础的游标的使用

-- Created on2017-01-03 星期二 by ADMINISTRATOR

declare 

--申明游标

cursor mycursor is select * from emp;--list empPO

empInfo emp%rowtype;

begin

--游标操作使用循环,在操作之前需要把游标打开

open mycursor;

--使游标向下一行

fetch mycursor into empInfo;

--判断此行是否有数据被发现

while(mycursor%found) loop

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

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

    --修改游标  继续向下

    fetch mycursor into empInfo;

end loop;

end;

 

第二种 代码少一点

-- Created on2017-01-03 星期二 by ADMINISTRATOR

declare 

--申明游标

cursor mycursor is select * from emp;--list empPO

empInfo emp%rowtype;

cou number;

 

begin

--游标操作使用循环,在操作之前需要把游标打开

open mycursor;

loop 

  --使游标向下一行

  fetch mycursor into empInfo;

  exit when mycursor%notfound;--无数据时退出

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

end loop;

end;

注意点:

1、 打开游标前,先判断游标是否已经打开

通过isopen判断,格式:游标%ISOPEN

IF mycur%ISOPEN THEN

null ;

ELSE

OPEN mycur ;

END IF ;

2、使用rowcount 对游标所操作的行数进行记录

DECLARE

-- 声明游标

CURSOR mycur IS SELECT * FROM emp ;

empInfo emp%ROWTYPE ;

cou NUMBER ;

BEGIN

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

IF mycur%ISOPEN THEN

null ;

ELSE

OPEN mycur ;

END IF ;

 

LOOP

-- 使游标向下一行

FETCH mycur INTO empInfo ;

EXIT WHEN mycur%NOTFOUND ;

cou := mycur%ROWCOUNT ;

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

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

END LOOP ;

END ;

你可能感兴趣的:(Oracle 基础的游标的使用)