zoukankan      html  css  js  c++  java
  • REF游标

    ----4.7 ref游标(loop循环)


    /***

    怎么使用  REF游标 ?
     ①声明REF 游标类型,确定REF 游标类型;
      ⑴强类型REF游标:指定retrun type,REF 游标变量的类型必须和return type一致。
       语法:Type   REF游标名   IS   Ref Cursor Return  结果集返回记录类型;
      ⑵弱类型REF游标:不指定return type,能和任何类型的CURSOR变量匹配,用于获取任何结果集。
       语法:Type   REF游标名   IS   Ref Cursor;
     ②声明Ref 游标类型变量;
      语法:变量名  已声明Ref 游标类型;
      
     ③打开REF游标,关联结果集 ;
      语法:Open   Ref 游标类型变量   For   查询语句返回结果集;
      
     ④获取记录,操作记录;
      语法:Fetch    REF游标名 InTo   临时记录类型变量或属性类型变量列表;
      
     ⑤关闭游标,完全释放资源;
      语法:Close   REF游标名;


    能够使用ref弱类型REF游标就不要使用强类型REF游标

    ***/

    --案例1:ref弱类型游标:loop循环


    create or replace procedure proc_select8
    (
    choice in varchar2
    )
    as
    TYPE cur IS REF CURSOR;  --声明游标类型为ref
    a cur;     --声明变量为ref游标类型
    osname t1%rowtype;
    begin
    if  choice='full' then
    open a for select * from t1;
    loop
    fetch a into osname; 
    exit when a%notfound;
    dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
    end loop;
    elsif choice='top' then
    open a for select * from t1 where rownum<10;
    loop
    fetch a into osname; 
    exit when a%notfound;
    dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
    end loop;
    else
      dbms_output.put_line('请输入正确值full或top!谢谢配合!');
    return;
    end if;
    close a;
    end;
      
          
    set serveroutput on
    exec proc_select8('full') ;
    exec proc_select8('top') ;


    --案例2:ref强类型游标:loop循环


    create or replace procedure proc_select9
    as
    TYPE cur IS REF CURSOR RETURN t1%RowType;  --声明游标类型为ref
    a cur;     --声明变量为ref游标类型
    osname t1%rowtype;
    begin
    open a for select * from t1; 
    loop
    fetch a into osname;
    exit when a%notfound;
    dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
    end loop;
    close a;
    end;


       
    set serveroutput on
    exec proc_select9 ;

  • 相关阅读:
    司马光 王安石
    辛弃疾
    伯仲叔季
    三国时代
    西汉 东汉 三国(曹魏 蜀汉 东吴)
    数量关系练习题
    为什么不推荐使用外键约束
    Google Map API申请
    Android传感器——加速度传感器
    第三届空间信息智能服务研讨会
  • 原文地址:https://www.cnblogs.com/bulrush/p/7743848.html
Copyright © 2011-2022 走看看