• PL/SQL语法 游标


    Oracle中的游标分为显式游标和隐式游标。
    隐式游标是系统自动为你创建的。
    显式游标是用户通过创建CURSOR的方式来创建。

    在Oracle中有三种类型的游标:

    1)不带参数的游标
          eg:
          cursor customer_cur is
                select * from customers;      

    2)带参数的游标
          eg:
          cursor customer_cur(customer_id in number) is
                select * from customers
                where customerid = customer_id;

    3)有返回结果的游标
          
    eg:
          cursor customer_cur return customers%rowtype is
                select * from customers;

    游标的五大属性:
    1)%FOUND              - 记录找到
    2)  %NOTFOUND        - 记录没找到
    3)  %ROWCOUNT       - 游标当前记录数
                                        (每取回一条记录,ROWCOUNT将增加1)
    4)  %ISOPEN              - 游标是否被打开
    5)  %ROWTYPE           - 代表游标取回的某一行记录

    游标使用四大步骤:
    1) 声明游标
          cursor is select语句

    2) 打开游标  
          open 游标名

    3) 从游标中取回数据
          fetch 游标名 into 行记录变量

    4) 关闭游标
          close 游标名

    下面我们就来举个例子:
    declare 
      
    -- 声明游标
      cursor customer_cur(city_in charis
        
    select * from customers
        
    where city = city_in;
      customer_rec customer_cur
    %ROWTYPE;
    begin
      
    -- 打开游标
      if not customer_cur%ISOPEN then
        
    open customer_cur('Madrid');
      
    end if;
      
      
    -- 从游标中取回数据
      fetch customer_cur into customer_rec;
      
      
    /*
        使用游标
      
    */
      
    while customer_cur%FOUND
      loop
        dbms_output.put_line(TO_CHAR(customer_cur
    %ROWCOUNT|| ':' || customer_rec.customerid  
          
    || '' || customer_rec.city);
        
    fetch customer_cur into customer_rec;
      
    end loop;
      
      
    -- 关闭游标
      close customer_cur;
      
    end;



  • 相关阅读:
    lombok自定义扩展实践
    Java8新特性之重复注解(repeating annotations)
    PowerMockito单元测试中的Invalid use of argument matchers问题详解
    sublimerge
    springboot Properties加载顺序源码分析
    关于U盘启动操作系统《30天自制操作系统》
    操作系统学习基本概念汇总
    使用图灵机器人高速开发智能聊天机器人
    LeetCode89:Gray Code
    Android Studio开发Android问题集【持续更新】
  • 原文地址:https://www.cnblogs.com/davidgu/p/1541538.html
Copyright © 2020-2023  润新知