zoukankan      html  css  js  c++  java
  • PLSQL--游标

    1.游标

      1.1什么是游标

       用于临时存储一个查询返回的多行数据(结果集,类似于Java的JDBC连接返回     的 ResultSet集合),通过遍历游标,可以逐行访问处理该结果的数据。

      游标的使用方式:声明--->打开-->读取--->关闭

      1.2语法

      游标声明:

      CURSOR 游标名[(数据列表)]   IS  查询语句;

      游标的打开:

      OPEN游标名;

      游标的取值:

      FETCH 游标名 INTO 变量列表;

      游标的关闭:

      CLOSE 游标名;

      1.3 游标的属性

        %FOUND  变量最后从游标中获取记录的时候,在结果集中找到了记录。

        %NOTFOUNT   变量最后从游标中获取记录的时候,在结果集中没有找到记录。

           %ROWCOUNT  当前时刻已经从游标中获取的记录数量。

                %ISOPEN 当前时刻已经从游标中获取的记录数量。

      示例1(不带参数的游标):使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来

       

     1 -- Created on 2018/8/23 by MENGMENG.CHEN 
     2 --使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来
     3 declare 
     4   -- 声明游标
     5   CURSOR c_emp IS SELECT ENAME,SAL FROM EMP;
     6   --声明变量接收游标中的数据
     7   v_name emp.ename%TYPE;
     8   v_sal   emp.sal%TYPE;
     9 begin
    10   --打开游标
    11   OPEN c_emp;
    12   
    13   --遍历游标
    14   LOOP
    15     --获取游标中的数据,如果有的话就赋值给变量
    16     FETCH c_emp INTO v_name,v_sal;
    17     EXIT WHEN c_emp%NOTFOUND;
    18        DBMS_OUTPUT.put_line('姓名:' || v_name || '薪水:' || V_SAL);
    19     END LOOP;
    20     
    21   --退出游标
    22   
    23 end;

      运行结果:

    示例2(带参数的游标):使用游标查询emp表中员工号=7839的员工姓名和工资,并将其依次打印出来

     1 -- Created on 2018/8/23 by MENGMENG.CHEN 
     2 --使用游标查询emp表中员工号=7839的姓名和工资,并将其依次打印出来
     3 declare 
     4   -- 声明游标
     5   CURSOR c_emp(v_empno emp.empno%TYPE) IS SELECT ENAME,SAL FROM EMP WHERE empno = v_empno;
     6   --声明变量接收游标中的数据
     7   v_name emp.ename%TYPE;
     8   v_sal   emp.sal%TYPE;
     9 begin
    10   --打开游标
    11   OPEN c_emp(7839);
    12   
    13   --遍历游标
    14   LOOP
    15     --获取游标中的数据,如果有的话就赋值给变量
    16     FETCH c_emp INTO v_name,v_sal;
    17     EXIT WHEN c_emp%NOTFOUND;
    18        DBMS_OUTPUT.put_line('姓名:' || v_name || '薪水:' || V_SAL);
    19     END LOOP;
    20     
    21   --退出游标
    22   
    23 end;

    运行结果:

  • 相关阅读:
    MongoDB下配置用户权限
    (CF)Codeforces445A DZY Loves Chessboard(纯实现题)
    C语言概述
    C#中值类型和引用类型的差别浅记
    Qt5官方demo解析集30——Extending QML
    汉澳sinox通过ndis执行windows驱动程序
    linux设备驱动归纳总结(三):4.ioctl的实现【转】
    linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现【转】
    linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write【转】
    linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
  • 原文地址:https://www.cnblogs.com/ChenMM/p/9525369.html
Copyright © 2011-2022 走看看