一  游标的分类

  在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
DECLARE
v_name tb_student.stu_name%TYPE;
v_sex tb_student.stu_sex%TYPE;
v_email tb_student.stu_email%TYPE;
CURSOR cur_stu IS
SELECT stu_name,stu_sex,stu_email FROM tb_student;
BEGIN
--打开游标
OPEN cur_stu;
LOOP
FETCH cur_stu INTO v_name,v_sex,v_email;
EXIT WHEN cur_stu%NOTFOUND;
dbms_output.put_line(v_name||' '||v_sex||' '||v_email);
END LOOP;
CLOSE cur_stu;
END;

  2.显式游标属性

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

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

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

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

最新文章

  1. 用ILSpy查看Session.SessionID的生成算法
  2. 将一个实体数据保存到不同的数据表中<EntityFramework6.0>
  3. Smart3D系列教程3之 《论照片三维重建中Smart3D几个工作模块的功能意义》
  4. SSIS Design3:并发执行
  5. T4模版基础例子
  6. easyui+Spring MVC+hibernate = 乐途
  7. JAVA静态和非静态内部类
  8. Simple Daemon Shell
  9. servlet上传图片 服务器路径(转)
  10. MvcPager分页控件以适用Bootstrap
  11. WPF 完美截图 <一>
  12. Android Studio C/C++开发环境配置
  13. 《深入理解Java虚拟机》——Java内存区域与内存溢出异常
  14. 区间(interval)
  15. ASP.NET MVC中,动态处理页面静态化 【转载】
  16. OA与BPM的区别
  17. python 爬qidian小说
  18. php 超时设置笔记
  19. 洛谷P2178 品酒大会【后缀数组】【单调栈】
  20. Jamie and Binary Sequence (changed after round) CodeForces - 916B (贪心)

热门文章

  1. Linux 重要文件目录
  2. Apache_安装
  3. swift-导航栏添加自定义返回按钮
  4. python3使用465端口发送邮件来解决阿里云封闭25端口问题
  5. [51Nod1446] 限制价值树 (容斥+MT定理+折半搜索)
  6. 论vue项目api相关代码的组织方式
  7. 继续聊WPF——自定义CheckBox控件外观
  8. BeanUtils.copyProperties()错误使用,给自己挖了坑
  9. dubbo-源码阅读之javaspi&javasist简单使用
  10. confluence中设置应用程序链接到jira