ORACLE PL/SQL 基础2 (游标的学习)

原创 2004年10月14日 14:00:00

游标学习

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

   显示游标的使用需要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;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle: ORA-01000: 超出打开游标的最大数问题及解决办法

java.sql.SQLException: ORA-01000: 超出打开游标的最大数ORA-01000: 超出打开游标的最大数ORA-06512: 在"SYS.DBMS_LOB", line 52...
  • shenzhen_mydream
  • shenzhen_mydream
  • 2010年07月11日 14:19
  • 19556

ORACLE PL/SQL语法应用:游标,存储过程,触发器,函数

--游标 --do while declare    cursor c is select * from t_t_student order by id;   v_record c%rowtype; ...
  • Eric_ley
  • Eric_ley
  • 2017年02月16日 17:46
  • 445

Oracle PL/SQL语句基础学习笔记(上)

PL/SQL语句基础学习笔记(上)
  • wahaa591
  • wahaa591
  • 2015年06月26日 11:41
  • 3422

PL/SQL游标使用详解

每当在PL/SQL中执行一个SQL语时,Oracle数据库都会为这个语句分一个上下文区域(Context Area)来处理所必需的信息,其中包括语句处理的行数,一个指向语句被分析以后的表示形式的指针以...
  • chiclewu
  • chiclewu
  • 2013年12月23日 00:01
  • 3682

sql 游标的基本用法

1. 定义游标定义游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来。DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合。语句格式为:DECLARE ...
  • jack15850798154
  • jack15850798154
  • 2010年03月01日 11:14
  • 5046

游标的概念和作用

游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。概括来讲,SQL的游标是一种临时的数据库对象,即可以用来存放...
  • chenjie19891104
  • chenjie19891104
  • 2009年08月08日 10:18
  • 47891

PL/SQL中游标和游标变量的使用

游标是什么:游标字面理解就是游动的光标。用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提...
  • junmail
  • junmail
  • 2007年01月11日 17:23
  • 25176

Oracle PL/SQL游标的学习

一 游标是什么 游标字面理解就是游动的光标。 用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作...
  • guxianga
  • guxianga
  • 2007年11月12日 10:18
  • 696

PL/SQL之游标属性详解

游标属性%isopen,%found,%notfound,%rowcount,以及简单循环,while循环使用
  • yhl_jxy
  • yhl_jxy
  • 2016年02月28日 12:12
  • 1198

Oracle PL/SQL基础

1、PL/SQL简介 什么是PL/SQL: PL/SQL是 Procedure Language & Structured Query Language 的缩写。ORACLE的SQL是...
  • yumushui
  • yumushui
  • 2014年07月18日 14:10
  • 928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE PL/SQL 基础2 (游标的学习)
举报原因:
原因补充:

(最多只允许输入30个字)