• 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 ;

  • 相关阅读:
    设计模式学习笔记之设计原则
    设计模式学习笔记之生成器模式
    设计模式学习笔记之适配器模式、外观模式
    java中的日期类型之间转换
    JS刷新当前页面的几种方法总结
    Java_枚举
    动态规划详解_2
    Java算法-动态规划详解
    Java经典算法题_2
    Java算法
  • 原文地址:https://www.cnblogs.com/bulrush/p/7743848.html
Copyright © 2020-2023  润新知