欢迎光临
我们一直在努力

ORACLE PL/SQL 基础2 (游标的学习)-数据库专栏,ORACLE

建站超值云服务器,限时71元/月

游标学习

一> 游标是什么:
  游标字面理解就是游动的光标。
  用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标
  用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前
  行的数据等等。
二> 游标的分类:
   显式游标和隐式游标

   显示游标的使用需要4步:
      1.声明游标
              
                cursor mycur(vartype number) is
                 select emp_no,emp_zc from cus_emp_basic
                where com_no = vartype;

      2.打开游标
               open mycur(000627)         注:000627:参数
          
      3.读取数据
                 fetch mycur into varno,varprice;
              
      4.关闭游标
                 close mycur;
三> 游标的属性
       oracle 游标有4个属性: %isopen , %found , %notfound, %rowcount
      
       %isopen 判断游标是否被打开,如果打开%isopen 等于true,否则等于false
       %found  %notfound 判断游标所在的行是否有效,如果有效,则%foundd等于true,否则等于false
       %rowcount 返回当前位置为止游标读取的记录行数。

四> 示例:
 
  
set serveroutput on;
declare
      varno varchar2(20);
      varprice varchar2(20);
     
     cursor mycur(vartype number) is
       select emp_no,emp_zc from cus_emp_basic
       where com_no = vartype;
     begin
    
       if mycur%isopen = false then
       
         open mycur(000627);
       end if;
         fetch mycur into varno,varprice;
         while mycur%found
         loop
        dbms_output.put_line(varno||,||varprice);
        if mycur%rowcount=2 then
        exit;
        end if;
        fetch mycur into varno,varprice;
     
        end loop;
        close mycur;
        
         end;

 

 

  pl/sql 记录 的结构和c语言中的结构体类似,是由一组数据项构成的逻辑单元。
  pl/sql 记录并不保存再数据库中,它与变量一样,保存再内存空间中,在使用记录时候,要首先定义记录结构
  ,然后声明记录变量。可以把pl/sql记录看作是一个用户自定义的数据类型。

  set serveroutput on;
       declare
    
      type person is record
         (
            empno  cus_emp_basic.emp_no%type,
            empzc  cus_emp_basic.emp_zc%type);
     
      person1 person;
     
      cursor mycur(vartype number)is
      select emp_no,emp_zc from cus_emp_basic
           where com_no=vartype;
          
      begin
           if mycur%isopen = false then
           open mycur(000627);
           end if;
          
           loop
             fetch mycur into person1;
             exit when mycur%notfound;
             dbms_output.put_line(雇员编号:||person1.empno||,地址:||person1.empzc);
          end loop;
          close mycur;
          end;

 

   典型游标for 循环
   
    游标for循环示显示游标的一种快捷使用方式,它使用for循环依次读取结果集中的行
    数据,当form循环开始时,游标自动打开(不需要open),每循环一次系统自动读取
    游标当前行的数据(不需要fetch),当退出for循环时,游标被自动关闭(不需要使用close)

   使用游标for循环的时候不能使用open语句,fetch语句和close语句,否则会产生错误。

 

         set serveroutput on;
        declare
    
    
        cursor mycur(vartype number)is
           select emp_no,emp_zc from cus_emp_basic
           where com_no=vartype;
          
        begin
          
         for  person in mycur(000627) loop
        
            dbms_output.put_line(雇员编号:||person.emp_no||,地址:||person.emp_zc);
            end loop;
         
          end;

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ORACLE PL/SQL 基础2 (游标的学习)-数据库专栏,ORACLE
分享到: 更多 (0)