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 ;

  • 相关阅读:
    cfdem链接库地址不对的解决方法(liblmp_auto.so)
    总结入门学习OpenFOAM的资料(网址、论坛、帖子、博客等)
    运行cfdemCFDEMuti编译时出现的错误
    mapreduce 的三种测试方式
    Shell 编程
    hadoop集群搭建
    hadoop的环境配置
    hadoop 模板虚拟机环境准备以及对模板机的克隆
    linux总结
    解决maven控制台出现乱码情况
  • 原文地址:https://www.cnblogs.com/bulrush/p/7743848.html
Copyright © 2011-2022 走看看