zoukankan      html  css  js  c++  java
  • Oracle---显式游标

      一  游标的分类

      在Oracle中提供了两种类型的游标:静态游标和动态游标。

      1.静态游标是在编译时知道其SELECT语句的游标。静态游标又分为两种类型,即隐式游标和显式游标。

      2.当用户需要为游标使用的查询直到运行的时候才能够确定时,可以使用REF游标(引用游标)和游标变量。使用引用游标必须声明游标变量。引用游标又可以分为两种类型:强类型REF游标和弱类型REF游标。

      二  游标的用法

      1.显式游标的用法

      使用显式游标的4个步骤:

      1>声明游标

      语法:CURSOR cursor_name [(parameter[,parameter]...)]

         [RETURN return_type] IS select_statement;

      cursor_name:游标的名称。

      parameter:用于为游标指定输入参数。在指定数据类型时,不能使用长度约束

      return_type:定义游标提取的行的类型。

      select_statement:游标定义的查询语句。

      2>打开游标

      语法:OPEN cursor_name[(parameters)];

      3>提取游标

      语法:FETCH cursor_name INTO variables;

      variables:变量名。

      4>关闭游标

      语法:CLOSE cursor_name;

      显式游标使用举例:

     1 --显式游标1
     2 DECLARE
     3   v_name tb_student.stu_name%TYPE;
     4   v_sex tb_student.stu_sex%TYPE;
     5   v_email tb_student.stu_email%TYPE;
     6   CURSOR cur_stu IS
     7   SELECT stu_name,stu_sex,stu_email FROM tb_student;
     8 BEGIN
     9   --打开游标
    10   OPEN cur_stu;
    11   LOOP
    12     FETCH cur_stu INTO v_name,v_sex,v_email;
    13     EXIT WHEN cur_stu%NOTFOUND;
    14     dbms_output.put_line(v_name||'  '||v_sex||'  '||v_email);
    15   END LOOP;
    16   CLOSE cur_stu;
    17 END;

      2.显式游标属性

      1>%FOUND:只有在DML语句影响一行或多行时,%FOUND才返回TRUE。

      2>%NOTFOUND:与%FOUND的作用相反。若DML语句没有影响任何行,则返回TRUE。

      3>%ROWCOUNT:返回DML语句影响的行数。若没有影响任何行,则返回0。

      4>%ISOPEN:返回游标是否已打开的值。在执行SQL语句之后,Oracle自动关闭SQL游标,所有隐式游标的%ISOPEN属性始终为FALSE。

  • 相关阅读:
    Zboot权限后台管理系统开源啦
    java中的强引用,软引用,弱引用,虚引用
    基于Hexo搭建个人博客
    拾遗Timer定时器
    手把手教你使用jmeter接口测试
    Vue 常见的面试题
    vue脚手架环境搭建
    vue过滤器
    基础面试题总结1
    Promise 库 lie.js 源码解读
  • 原文地址:https://www.cnblogs.com/leny/p/4464465.html
Copyright © 2011-2022 走看看