日期:2014-05-17  浏览次数:20710 次

oracle 游标是怎么回事,有木有一个小例子啊
oracle 游标是怎么回事,有木有一个小例子啊

------解决方案--------------------
-- 声明游标;CURSOR cursor_name IS select_statement

--For 循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用for循环来使用这个游标
declare
       --类型定义
       cursor c_job
       is
       select empno,ename,job,sal
       from emp
       where job='MANAGER';
       --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
       c_row c_job%rowtype;
begin
       for c_row in c_job loop
         dbms_output.put_line(c_row.empno
------解决方案--------------------
'-'
------解决方案--------------------
c_row.ename
------解决方案--------------------
'-'
------解决方案--------------------
c_row.job
------解决方案--------------------
'-'
------解决方案--------------------
c_row.sal);
       end loop;
end;


      
--Fetch游标
--使用的时候必须要明确的打开和关闭

declare 
       --类型定义
       cursor c_job
       is
       select empno,ename,job,sal
       from emp
       where job='MANAGER';
       --定义一个游标变量
       c_row c_job%rowtype;
begin
       open c_job;
         loop
           --提取一行数据到c_row
           fetch c_job into c_row;
           --判读是否提取到值,没取到值就退出
           --取到值c_job%notfound 是false 
           --取不到值c_job%notfound 是true
           exit when c_job%notfound;
            dbms_output.put_line(c_row.empno
------解决方案--------------------
'-'
------解决方案--------------------
c_row.ename
------解决方案--------------------
'-'
------解决方案--------------------