一,什么是游标

遍历查询结果集的一种机制。

二,为什么避免使用游标

    尽量避免使用游标, 因为游标的效率较差;

如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。

三,使用游标的步骤(静态游标)

1,声明一些变量,用来保存游标遍历过程的临时数据

2,声明游标,并且指定查询

3,打开游标

4,从游标中获取一行或多行记录

5,关闭游标

四,游标的属性

1,%isopen:是否打开游标

2,%rowcount:游标的行数

3,%found:是否还有数据

4,%notfound:是否没有数据

五,游标的分类(下面的分类不是并列关系)

1,静态游标:使用游标前就已经定义好,并且不能更改

2,动态游标:游标在声明时没有定义好,在打开时可以做更改

3,显示游标:使用游标前要声明、打开游标,使用完成需要关闭

4,隐示游标:事先没有声明打开游标,直接使用,也不需要关闭

5,强类型游标:声明游标时带return关键字,游标只能与特定的查询匹配

6,弱类型游标:声明游标时不带return关键字,游标可以与任意查询匹配

六,游标的具体使用栗子:

1,先创建表结构和插入数据

create table students(id number,name varchar2(10),age number
);
insert  into students values(1,'李白',18);
insert  into students values(2,'妲己',16);
insert  into students values(3,'赵信',20);
commit;

2,隐式游标

declare
beginfor student in(select * from students) loopdbms_output.put_line('编号:'||student.id||',姓名:'||student.name||',年龄'||student.age);end loop;
end;

3,显式游标

declarecursor mycur is select * from students;student students%rowtype;
beginopen mycur;loopfetch mycur into student;exit when mycur%notfound;dbms_output.put_line('编号:'||student.id||',姓名:'||student.name||',年龄'||student.age);end loop;close mycur;
end;

4,动态游标之强类型游标

--打印年龄小于18的学生
create or replace procedure printStudents(in_age in varchar2)
as--自定义类型type student_type is record(id number,name varchar2(10));type students_type is ref cursor return student_type;--定义游标类型students students_type;--声明游标变量student student_type;--声明变量
beginopen students for select id,name from students where age<in_age;--定义游标fetch students into student;--游标指针指向下一行while students%found loop--遍历游标dbms_output.put_line('编号:'||student.id||',姓名:'||student.name);fetch students into student;--游标指针指向下一行end loop;close students;--关闭游标
end;declarep_v number;
beginp_v:=&请输入年龄;printstudents(p_v);
end;

Oracle游标使用相关推荐

  1. oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)

    来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...

  2. oracle 游标中抛出异常的处理方式

    在oracle游标的使用中,用for循环是一种较直接open 游标然后关闭游标更好的应用方式.现在写两个存储过程,验证这两种情况下游标中抛出异常后游标是否正常关闭. 现在有一张表emp,表结构如下: ...

  3. oracle 游标示例

    oracle 游标示例 declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50); begin for x in (select ...

  4. oracle游标错误,ORACLE游标与错误处理

    ORACLE游标与异常处理 过程示例 create or replace procedure PROC_TASK_QUERY is g_name task_company_stock_list.g_n ...

  5. oracle简版如何打开,如何打开和关闭Oracle游标

    如何打开和关闭Oracle游标 以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧! 打开Oracle游标 使用游标中的值之前应该首先dewen ...

  6. oracle游标理解,oracle游标的使用方法

    oracle游标的使用方法: ①.定义游标 cursor ②.打开游标 open ③.提取游标 fetch ④.关闭游标 close declare --类型定义 cursor c_job is se ...

  7. [转载]Oracle 游标使用全解

    这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标--(1)定义游标- ...

  8. Oracle 游标使用全解

    Oracle 游标使用全解 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For ...

  9. oracle表 游标,Oracle游标表达式和表函数

    Oracle游标表达式是Oracle数据库中的重要概念,下面就为您详细介绍Oracle游标表达式和表函数方面的知识,供您参考学习之用. Oracle游标表达式(有时称为游标子队列)是 SQL 语言的一 ...

  10. oracle游标的说法,oracle游标练习题.doc

    oracle游标练习题 oracle游标练习题 当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句.PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时 ...

最新文章

  1. mysql 数据表 时间自动_MySQL数据库时间设置自动添加时间和自动更新时间
  2. 非视线成像 - 把墙角变为相机
  3. yield( )函数的使用
  4. UITableviewcell重用机制以及解决重绘出现的重叠现象
  5. 【安全系类之设计】应用安全相关
  6. 科普 | 什么是Service Mesh技术?
  7. 解密 云HBase时序引擎OpenTSDB 优化技术
  8. 【论文笔记】分层强化学习鼻祖:Feudal Reinforcement Learning 1993
  9. 摊牌了,国内首个三维重建系列视频课程,涉及SFM、多视图几何、结构光、单目深度估计等...
  10. php服务端搜索,功能改进
  11. 数据化、信息化、数字化和智能化之间联系和区别解析
  12. python期权价格计算器_使用Python构建内在价值计算器
  13. 用html做krc转换lrc的文件,来,教你怎么把酷狗音乐krc歌词转换成lrc歌词文件?
  14. 前端开发和后端开发究竟有什么区别?详细介绍
  15. 用计算机弹奏全球变冷,《全球变冷,钢琴谱》许嵩(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
  16. WebApp开发中的rem.js
  17. Android程序员该如何进阶学习以预防35岁中年职场危机?
  18. 计算机与机械专业 有什么大学排名,2017机械排名211大学排名
  19. Linux文件复制、移动、删除等操作命令
  20. [试错题库]中国政企ASP服务规范性考试

热门文章

  1. php error_get_last(),PHP捕获异常register_shutdown_function和error_get_last的使用
  2. oracle升级后出现 ora-02055,分布式更新失败 0ra-02055错误 请各位指点(在线等待)...
  3. java instance变量_java 类方法和实例方法 以及 类变量和实例变量
  4. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
  5. Nacos 集群整合 Nginx 实现反向代理、负载均衡_03
  6. 迅雷下载Linux Oracle11gR2和Oracle12c
  7. idea报Can’t Open Local Terminal
  8. winform php 交互,WinForm开发,窗体显示和窗体传值
  9. Java中数组的打印
  10. android选择多个文件_一分钟合并多个Excel、PDF文件,3种方法任你选择,好用到没朋友...