Oracle中显示游标、隐式游标、REF游标的使用

本文介绍了Oracle数据库中的游标概念,包括游标的分类(静态游标:显式和隐式,动态游标:REF游标),详细阐述了显式游标、隐式游标和REF游标的语法、使用方法及其生命周期。同时,讨论了游标的选项,如%FOUND、%NOTFOUND、%ROWCOUNT和%ISOPEN。通过示例演示了三种游标类型的使用,展示了如何在实际操作中处理和访问数据。
摘要由CSDN通过智能技术生成

1.游标概念

游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。

个人理解:用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上做操作。

2.游标分类

游标可以分为静态游标和动态游标。
静态游标:分为显式游标和隐式游标。
动态游标:REF游标是一种引用类型,类似于指针。在运行的时候才能确定游标使用的查询。

  • 显式游标
    1)语法:CURSOR 游标名 ( 参数 ) [返回值类型] IS Select 语句。
    2)从declare、open、fetch、close是一个完整的生命旅程。
  • 隐式游标
    1)相对显示而言,没有open、fetch、close,可能也没有明确的cursor的declare。
    2)常用的隐式游标比如FOR循环、LOOP循环。
  • REF游标
    1) 语法:TYPE 游标类型名 REF CURSOR [ return 返回值];
    2) 分为: 强类型和弱类型。
    强类型(限制)REF CURSOR,规定返回类型。
    弱类型(非限制)REF CURSOR,不规定返回类型,可以获取任何结果集。

3.生命周期

1)打开游标(OPEN):解析,绑定。。。不会从数据库检索数据
2)从游标中获取记录(FETCH INTO):执行查询,返回结果集。通常定义局域变量作为从游标获取数据的缓冲区。
3)关闭游标(CLOSE):完成游标处理,用户不能从游标中获取行。

4.游标选项

%FOUND:返回值为布尔型,变量最后从游标中获取记录的时候,在结果集中找到了记录。
%NOTFOUND:返回值为布尔型,变量最后从游标中获取记录的时候,在结果集中没有找到记录。
%ROWCOUNT:返回值为整型,代表当前游标成功执行的数据行数。
%ISOPEN:返回值为布尔型,代表游标是否打开。

5.环境准备

CREATE TABLE TEST_DEPT
       (DEPTNO NUMBER(2),
        DNAME VARCHAR2(14),
        LOC VARCHAR2(13) );
 
INSERT INTO TEST_DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK'
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值