【PLSQL】游标
Oracle中的SQL在执行时需要分配一块内存区域,这块内存区域叫做上下文区。
上下文区中记录了SQL语句的处理信息,这些信息包括:查询返回的数据行、查询所处理的数据的行号、指向共享池中的已分析的SQL语句。
在PL/SQL中游标可以分为以下两类:
显式游标:使用CURSOR语句显式定义的游标,需要手动打开和关闭。
隐式游标:Oracle为DML和SELECT..INTO 语句分配的游标。隐式游标不用显式的打开和关闭。
定义游标:
CURSOR cursor_name[parameter_list]
[RETURN return_type]
IS query
[FOR UPDATE [OF (column_list)][NOWAIT]];
打开游标:
OPEN cursor_name[(parameter_values)];
提取游标数据:
FETCH cursor_name INTO variable_name(s)|PL/SQL_record;
一个简单的定义游标、打开游标、提取游标的代码示例:
DECLARE
DEPT_ROW DEPT%ROWTYPE;
CURSOR DEPT_CUR IS
SELECT * FROM DEPT;
BEGIN
OPEN DEPT_CUR;
FETCH DEPT_CUR INTO DEPT_ROW;
DBMS_OUTPUT.PUT_LINE(DEPT_ROW.DEPTNO || ' ' || DEPT_ROW.DNAME || ' ' || DEPT_ROW.LOC);
CLOSE DEPT_CUR;
END;
游标的四大属性:
%FOUND:判断是否从结果集中提取了数据。当游标中有可以提取的数据时返回True,没有的时候返回False。
%ISOPEN:判断对应的游标变量是否打开,如果游标变量打开,则返回True;否则返回False。
%NOTFOUND:当没有从游标中提取到数据时,返回True,否则返回False。
%ROWCOUNT:用于返回到目前为止从游标中提取到的记录的行数。初始值是0,每提取一条数据,%ROWCOUNT值会加1。
【PLSQL】游标的更多相关文章
- PLSQL游标使用
游标是一个指针,它指向一块SQL区域,该区域用于存储处理过来的SELECT或者其他的DML操作返回的数据.由PLSQL创建并管理的游标成为隐式游标,用户创建并管理的成为显示游标.游标可以看做是指向记录 ...
- PLSQL游标
静态游标:结果集已经确实(静态定义)的游标.分为隐式和显式游标 隐式游标:所有DML语句为隐式游标,通过隐式游标属性可以获取SQL语句信息: 显式游标:用户显式声明的游标,即指定结果集.当查询返回结果 ...
- SQL记录-PLSQL游标
PL/SQL游标 Oracle会创建一个存储区域,被称为上下文区域,用于处理SQL语句,其中包含需要处理的语句,例如所有的信息,行数处理,等等. 游标是指向这一上下文的区域. PL/SQL通过控制光标 ...
- Oracle PLSQL游标、游标变量的使用
参考文章:https://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实 ...
- PLSQL开发笔记和小结(转载)
***************************************** PLSQL基本结构 ***************************************** 基本数据 ...
- Oracle之PLSQL总结
基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号 ...
- PLSQL开发笔记和小结
***************************************** PLSQL基本结构*****************************************基本数据类型变 ...
- PLSQL学习教程(全)
基于ORACLE9i+PL/SQLDeveloper7.1.4) 课程 一 PL/SQL 基本查询与排序 本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名 ...
- plsql oracle 使用教程
课程 一 PL/SQL 基本查询与排序 本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名ALIASES 5.连接列 6.在SQL PLUS中编辑缓冲,修改 ...
- Oracle存储过程、游标、函数
SQL99是什么 (1)是操作所有关系型数据库的规则 (2)是第四代语言 (3)是一种结构化查询语言 (4)只需发出合法合理的命令,就有对应的结果显示 SQL的特点 (1)交互性强,非过程化 (2)数 ...
随机推荐
- Thesis Viva checklist
This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...
- ansible plugins 列表
[action plugins] [cache plugins]jsonfilememcachedmemorymongodbpickleredisyaml [callback plugins]acti ...
- 常用Git命令大全思维导图
开发中代码管理少不了使用Git,对于初学者来说Git命令的学习是一个难过的坎,为了帮助大家记忆并快速掌握Git的基本使用,我把常用的Git命令整理成思维导图,分享给大家. 高清大图在线预览 http: ...
- codeforces 391E2 (【Codeforces Rockethon 2014】E2)
题目:http://codeforces.com/problemset/problem/391/E2 题意:有三棵树.每棵树有ni个结点,加入两条边把这三棵树连接起来,合并成一棵树.使得合并的树 ...
- swift 拼图小游戏
依据这位朋友的拼图小游戏改编 http://tangchaolizi.blog.51cto.com/3126463/1571616 改编主要地方是: 原本着我仁兄的代码时支持拖动小图块来移动的,我參照 ...
- Python基础--正則表達式基本的语法以及re模块
正则是个非常牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下python中的re模块. re模块包括对正則表達式的支持. 什么是正则: 正則表達式是能够匹配文本片 ...
- 用HttpCombiner来减少js和css的请问次数
HttpCombiner也不记得是谁写的了,功能是把多个js文件或css文件合并到一块,压缩一下一起发给客户端来优化网站. 用法是这样的: <script type="text/jav ...
- 学习笔记——SQL SERVER2014内存数据库
sql server2014支持内存数据库功能. 内存可以说是数据库性能的生命线.理论上,如果内存足够,SQL SERVER可以将所有的数据都装载到内存里,访问.修改什么的,都在内存中进行,只有在ch ...
- Android序列化的存储和读取
Android中序列化的实现有两种方式:Serializable接口和Parcelable接口,本文对这两种方式进行简单的总结和使用. 一.相关概念 (一)序列化的原因(序列化能实现的效果) 1.永久 ...
- 2017 Multi-University Training Contest - Team 1 1002&&hdu 6034
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...