转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
ORACLE PL/SQL 基础2 (游标的学习)         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:866 更新时间:2009/4/22 22:05:15

游标学习

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

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


[系统软件]EXP-00008: ORACLE error 904 encountered的解决方…  [常用软件]PB7 连接 Oracle 的配置方法
[Web开发]oracle Export and Import 简介  [Web开发]ADO访问Oracle结果集的心得
[JAVA开发]JDBC+Hibernate将Blob数据写入Oracle  [JAVA开发]J2EE应用中与Oracle数据库的连接
[JAVA开发]Oracle Application Serve_  [其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手…
[其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…  [其他]PROC++批量导入导出ORACLE数据库表
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台