全面解读数据库中游标的使用方法
数据库中游标的使用方法(上)
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。由系统或用户以变量的形式定义。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理,主语言是面向记录的,一组主变量一次只能存放一条记录在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。用数据库语言来描述游标就是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。
游标有两种类型:显式游标和隐式游标。在程序中用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种形式的查询和触发器操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就要由程序员定义一个显式游标,并通过与游标有关的语句进行处理。显式游标对应一个返回结果为多行多列的SELECT语句。
游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。以下将通过详细的例子为您介绍显式游标和隐式游标。
显式游标:
1 定义游标
CURSOR CUR_NAME P1,P2,...
IS
SELECT语句
--------------------
A. 该SELECT语句不可以是SELECT..INTO..语句.
B. 游标可以有参数,这些参数用来参与SELECT中的WHERE条件.
2 打开游标: OPEN CUR_NAME P1,P2,...
A. 如果有参数,则首先见实际参数传递给SELECT语句
B. 执行SELECT语句.其结果将存在游标中,并且可以用游标名来进行控制.
3 获取数据: FETCH CUR_NAME INTO 变量;
A. FETCH从第一行数据开始,每FETCH一行数据,自动跳到下一行.直到FETCH了最后一行数据为止.
B. 如果使用普通变量来获取数据,那么,应该根据游标结构中的字段来定义变量.
此时,变量列表与游标中的字段列表在类型,顺序,个数上一致.
C. 也可以使用记录变量来获取数据. "记录变量 游标名%ROWTYPE";
此时,该记录变量的结构与游标的结构完全一致.(注意,此处最好不要用表名).
4 关闭游标: CLOSE CUR_NAME;
例 查询7788的员工姓名,职务,工资.
DECLARE
V_ENAME EMP.ENAME%TYPE;
V_JOB EMP.JOB%TYPE;
-----------------------
--1.
CURSOR CUR_EMP
IS
SELECT ENAME,JOB FROM EMP WHERE EMPNO = 7788;
BEGIN
--2.
OPEN CUR_EMP;
--3.
FETCH CUR_EMP INTO V_ENAME,V_JOB;
DBMS_OUTPUT.PUT_LINE(V_ENAME||' '||V_JOB);
--4.
CLOSE CUR_EMP;
END;
- 1有效进行虚拟环境管理的四项措施
- 2OA办公系统实现企业 “仁义礼智信”
- 3不得不发展的技术 云计算风暴来袭
- 4应用技巧:创建你自己的系统存储过程
- 5用户是OA办公自动化系统的应用主体
- 6高效简化数据中心网络的五项措施
- 7企业介入云计算 对网格发展是利好
- 8经济衰退 存储外包服务日渐升温
- 9企业部署虚拟化前要考虑的十大问题
- 10解决服务器安全问题的七个技巧
- 11IT史上最伟大的十大存储发明
- 12了解Windows权限认识局域网共享与安全
- 13分支机构网络管理影响企业的IP电话管理
- 14专家谈企业核心机密数据的安全防范机制
- 15企业电子邮件安全问题隐忧重重
- 16WEB应用防火墙瞄准盲点防御
- 17开源与SOA酝酿技术机制与商业模式变革
- 18五大虚拟化热门技术:CPU虚拟化居首
- 19教你几招服务器数据备份方法
- 20数据中心 迎接巨变
- 21独家:HIPS和NIPS两种类型入侵防护系统对比
- 22虚拟化会成为Linux的杀手吗?
- 23计世独家:数据存储 向左走还是向右走
- 24分析:虚拟机蔓延会耗费你多少成本
- 25企业应为HPC系统选择哪一操作系统
- 26现代城市会展行业OA软件行业中电子商务的应用
- 27Gartner:数据中心的操作急需现代化
- 28OA办公软件的应用范畴涉及到所有知识性员工
- 29怎样解决服务器虚拟化造成的混乱
- 30绿色数据中心都有哪些量化指标?