• Oracle的游标使用小结


    最近工作中常常需要使用游标,一般在循环或者需要一条条操作数据的场景下使用。
    下面总结两种常用的游标使用方法:

    1. FOR 循环游标
    2. FETCH游标

    1.FOR 循环游标

    • 定义游标
    • 定义游标变量
    • 使用for循环来使用这个游标
    declare
           --类型定义
           cursor c_job
           is
           select empno,ename,job,sal
           from emp
           where job='MANAGER';
           --定义一个游标变量v_row c_job%ROWTYPE ,该类型为游标c_job中的一行数据类型
           v_row c_job%rowtype;
    begin
           for v_row in c_job loop
             dbms_output.put_line(v_row.empno||'-'||v_row.ename||'-'||v_row.job||'-'||v_row.sal);
           end loop;
    end;
    /
    

    2.Fetch游标

    • 注意:使用的时候必须要明确的打开和关闭
    declare 
           --类型定义
           cursor c_job
           is
           select empno,ename,job,sal
           from emp
           where job='MANAGER';
           --定义一个游标变量
           v_row c_job%rowtype;
    begin
           open c_job;
             loop
               --提取一行数据到v_row
               fetch c_job into v_row;
               --判读是否提取到值,没取到值就退出
               --取到值c_job%notfound 是false 
               --取不到值c_job%notfound 是true
                exit when c_job%notfound;
                dbms_output.put_line(v_row.empno||'-'||v_row.ename||'-'||v_row.job||'-'||v_row.sal);
             end loop;
           --关闭游标
          close c_job;
    end;
    /
    

    其中:

    • %TYPE说明
      为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致

    • %ROWTYPE说明
      如果一个表有较多的列,使用%ROWTYPE来定义一个表示表中一行记录的变量。

  • 相关阅读:
    接口的幂等性原则
    SpringBoot热部署-解决方案
    @Resource 与 @Service注解的区别
    软件概要设计做什么,怎么做
    First Show
    Glide源码解析一,初始化
    android使用giflib加载gif
    android的APT技术
    RxJava的concat操作符
    RxJava基本使用
  • 原文地址:https://www.cnblogs.com/laiyaling/p/11889657.html
Copyright © 2020-2023  润新知