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 ;

  • 相关阅读:
    Array
    ie兼容
    webpack----entry
    webpack——html-webpack-plugin
    webpack 报错 path is not defind
    PHPStorm自动压缩YUI Compressor配置
    fly
    Math.max得到数组中最大值
    简单html弹窗
    js中页面跳转(href)中文参数传输方式
  • 原文地址:https://www.cnblogs.com/bulrush/p/7743848.html
Copyright © 2011-2022 走看看