Oracle游标使用
一,什么是游标
遍历查询结果集的一种机制。
二,为什么避免使用游标
尽量避免使用游标, 因为游标的效率较差;
如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。
三,使用游标的步骤(静态游标)
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游标使用相关推荐
- oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)
来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...
- oracle 游标中抛出异常的处理方式
在oracle游标的使用中,用for循环是一种较直接open 游标然后关闭游标更好的应用方式.现在写两个存储过程,验证这两种情况下游标中抛出异常后游标是否正常关闭. 现在有一张表emp,表结构如下: ...
- oracle 游标示例
oracle 游标示例 declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50); begin for x in (select ...
- oracle游标错误,ORACLE游标与错误处理
ORACLE游标与异常处理 过程示例 create or replace procedure PROC_TASK_QUERY is g_name task_company_stock_list.g_n ...
- oracle简版如何打开,如何打开和关闭Oracle游标
如何打开和关闭Oracle游标 以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧! 打开Oracle游标 使用游标中的值之前应该首先dewen ...
- oracle游标理解,oracle游标的使用方法
oracle游标的使用方法: ①.定义游标 cursor ②.打开游标 open ③.提取游标 fetch ④.关闭游标 close declare --类型定义 cursor c_job is se ...
- [转载]Oracle 游标使用全解
这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标--(1)定义游标- ...
- Oracle 游标使用全解
Oracle 游标使用全解 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For ...
- oracle表 游标,Oracle游标表达式和表函数
Oracle游标表达式是Oracle数据库中的重要概念,下面就为您详细介绍Oracle游标表达式和表函数方面的知识,供您参考学习之用. Oracle游标表达式(有时称为游标子队列)是 SQL 语言的一 ...
- oracle游标的说法,oracle游标练习题.doc
oracle游标练习题 oracle游标练习题 当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句.PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时 ...
最新文章
- mysql 数据表 时间自动_MySQL数据库时间设置自动添加时间和自动更新时间
- 非视线成像 - 把墙角变为相机
- yield( )函数的使用
- UITableviewcell重用机制以及解决重绘出现的重叠现象
- 【安全系类之设计】应用安全相关
- 科普 | 什么是Service Mesh技术?
- 解密 云HBase时序引擎OpenTSDB 优化技术
- 【论文笔记】分层强化学习鼻祖:Feudal Reinforcement Learning 1993
- 摊牌了,国内首个三维重建系列视频课程,涉及SFM、多视图几何、结构光、单目深度估计等...
- php服务端搜索,功能改进
- 数据化、信息化、数字化和智能化之间联系和区别解析
- python期权价格计算器_使用Python构建内在价值计算器
- 用html做krc转换lrc的文件,来,教你怎么把酷狗音乐krc歌词转换成lrc歌词文件?
- 前端开发和后端开发究竟有什么区别?详细介绍
- 用计算机弹奏全球变冷,《全球变冷,钢琴谱》许嵩(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
- WebApp开发中的rem.js
- Android程序员该如何进阶学习以预防35岁中年职场危机?
- 计算机与机械专业 有什么大学排名,2017机械排名211大学排名
- Linux文件复制、移动、删除等操作命令
- [试错题库]中国政企ASP服务规范性考试
热门文章
- php error_get_last(),PHP捕获异常register_shutdown_function和error_get_last的使用
- oracle升级后出现 ora-02055,分布式更新失败 0ra-02055错误 请各位指点(在线等待)...
- java instance变量_java 类方法和实例方法 以及 类变量和实例变量
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
- Nacos 集群整合 Nginx 实现反向代理、负载均衡_03
- 迅雷下载Linux Oracle11gR2和Oracle12c
- idea报Can’t Open Local Terminal
- winform php 交互,WinForm开发,窗体显示和窗体传值
- Java中数组的打印
- android选择多个文件_一分钟合并多个Excel、PDF文件,3种方法任你选择,好用到没朋友...