- 浏览: 1499607 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
游标是Oracle系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果
<1>游标操作的过程
(1) 定义游标
(2)打开游标
(3)游标的操作(移动,读取数据)
(4)关闭游标
注释:-- 游标的定义格式:cursor cusor_name is select语句
-- 游标的打开: open 游标名
-- 游标读取数据: fetch 游标名 into 变量1,变量2……(这里可以是普通变量,也可以是记录类型的变量)
-- 关闭游标: close 游标名
--游标只能向后移动,不能返回。
<2>游标操作举例
Declare
Row person%rowtype;--定义了一个记录类型的变量
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
I number(2);--定义普通变量
Begin
Select count(*) into I from person;--i变量保存person表中的记录总数
Open cursor_person; ----打开游标
Loop
Fetch cursor_person into row; ----取出游标中的数据放到记录类型的变量中
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
I:=i-1;
Exit when i=0;
End loop;
Close cursor_person; ----关闭游标
End;
/
注解:将表中号码是2的人年龄加1,号码是3的人年龄加2.
<3>游标的属性:
----%ISOPEN:该属性判断游标是否已经打开,若已经打开,则返回值值true,否则返回false
------%FOUND若最近一次fetch操作结果存在,那么就返回true
------%NOTFOUND同%FOUND相反
------%ROWCOUNT返回游标操作过的记录总数
上面的举例可以改写为:
Declare
Row person%rowtype;--定义了一个记录类型的变量
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
Begin
Open cursor_person; ----打开游标
Loop
Fetch cursor_person into row; ----取出游标中的数据放到记录类型的变量中
Exit when cursor_person%NOTFOUND;
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
End loop;
Close cursor_person; ----关闭游标
End;
/
<4>for循环在游标操作中的应用
基本格式:
For 变量名(此变量名无需定义) in 游标名 loop
循环体部分
End loop;
说明:for循环会自动的打开和关闭游标
下面是上例子在for循环中的使用情况:
Declare
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
Begin
For row in cursor_person loop
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
End loop; ----关闭游标
End;
/
<5>带参数的游标操作
定义的格式:
Cursor cursor_name(variable1 type, variable2 type …………….) is selectStatement
<1>游标操作的过程
(1) 定义游标
(2)打开游标
(3)游标的操作(移动,读取数据)
(4)关闭游标
注释:-- 游标的定义格式:cursor cusor_name is select语句
-- 游标的打开: open 游标名
-- 游标读取数据: fetch 游标名 into 变量1,变量2……(这里可以是普通变量,也可以是记录类型的变量)
-- 关闭游标: close 游标名
--游标只能向后移动,不能返回。
<2>游标操作举例
Declare
Row person%rowtype;--定义了一个记录类型的变量
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
I number(2);--定义普通变量
Begin
Select count(*) into I from person;--i变量保存person表中的记录总数
Open cursor_person; ----打开游标
Loop
Fetch cursor_person into row; ----取出游标中的数据放到记录类型的变量中
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
I:=i-1;
Exit when i=0;
End loop;
Close cursor_person; ----关闭游标
End;
/
注解:将表中号码是2的人年龄加1,号码是3的人年龄加2.
<3>游标的属性:
----%ISOPEN:该属性判断游标是否已经打开,若已经打开,则返回值值true,否则返回false
------%FOUND若最近一次fetch操作结果存在,那么就返回true
------%NOTFOUND同%FOUND相反
------%ROWCOUNT返回游标操作过的记录总数
上面的举例可以改写为:
Declare
Row person%rowtype;--定义了一个记录类型的变量
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
Begin
Open cursor_person; ----打开游标
Loop
Fetch cursor_person into row; ----取出游标中的数据放到记录类型的变量中
Exit when cursor_person%NOTFOUND;
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
End loop;
Close cursor_person; ----关闭游标
End;
/
<4>for循环在游标操作中的应用
基本格式:
For 变量名(此变量名无需定义) in 游标名 loop
循环体部分
End loop;
说明:for循环会自动的打开和关闭游标
下面是上例子在for循环中的使用情况:
Declare
Increment number(4);--定义了一个普通变量
Cursor cursor_person is select * from person; -定义游标变量
Begin
For row in cursor_person loop
If row.id=2 then
Increment:=1;
Elseif row.id=3 then
Increment:=2;
End if;
Update person set age=age+ Increment where name=row.name;
End loop; ----关闭游标
End;
/
<5>带参数的游标操作
定义的格式:
Cursor cursor_name(variable1 type, variable2 type …………….) is selectStatement
发表评论
-
SQL查询顺序处理
2011-09-15 11:29 1624select的解析执行顺序1. from语句 2. where ... -
概念模型、逻辑模型、物理模型区别
2011-09-08 10:48 1230http://wenku.baidu.com/view/9a6 ... -
规范化-数据库设计原则
2011-09-07 10:41 1451简介: 关系数据库设计的核心问题是关系模型的设计。本文将结合具 ... -
数据库设计准则(第一、第二、第三范式说明)
2011-09-07 10:17 1276I、关系数据库设计范式 ... -
oracle日志文件及归档日志模式
2011-09-01 10:18 1758oracle数据库中分为联机日志文件和归档日志文件两种日志文件 ... -
Oracle重做日志管理
2011-09-01 09:50 1434Oracle重做日志操作是为了记录数据的改变,提供数据库 ... -
Oracle复制技术的分布式系统同步应用
2011-08-28 17:41 1291本文将结合一个实际案例,讲解Oracle复制技术在分布 ... -
oracle数据同步
2011-08-28 14:34 993首先创建一个 dblink(dat ... -
Oracle 流复制(Stream Replication)
2011-07-20 10:37 5620Stream 是Oracle 的消息队列( ... -
表分区
2011-06-30 09:21 1678分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用 ... -
数据库大型应用解决方案总结(1)
2011-06-22 18:01 1391随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设 ... -
oracle_SQL中ROWID与ROWNUM的使用
2011-06-16 10:51 1424对于 Oracle 的 rownum 问题,很多资料都说不支持 ... -
oracle函数手册
2011-06-08 09:22 1183SQL中的单记录函数1.ASCII ... -
oracle基础文档
2011-06-03 09:10 1238oracle基础文档 -
ORACLE 找回误删的数据库
2011-06-02 14:14 1367同事找回时操作的数据库为oracle 10g , 之前删除方式 ... -
为什么Oracle有时会用索引来查找数据?--强制Oracle使用最优的“执行计划”
2011-06-01 09:04 1741[摘要] 在你运用SQL语言,向数据库发布一条查询语句时,O ... -
sql编程规范与性能
2011-05-31 08:40 1276sql编程规范与性能 -
Nested Loops Join(嵌套连接)
2011-04-13 16:21 11573说明:最近找到了一个 ... -
如何看Oracle执行计划
2011-01-14 15:43 2187oracle执行计划解释 ... -
oracle中分析sql语句执行计划的方法
2011-01-14 15:36 2229如何生成explain plan? 解答:运行utl ...
相关推荐
在处理游标时,事务控制语句如COMMIT和ROLLBACK用于保存或回滚游标操作对数据库的影响。COMMIT提交事务,使更改永久化;ROLLBACK则撤销所有未提交的更改。 7. **显式游标与隐式游标** 显式游标允许更精细的控制,...
### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果进行逐行处理。游标分为两种主要类型:**隐式游标**和**显示游标**。此外,还可以利用游标进行...
Oracle数据库中的游标是PL/...总之,Oracle游标提供了一种灵活的方式来处理SQL查询的结果,允许程序逐行操作数据,这在处理复杂业务逻辑和事务时尤为有用。理解并熟练掌握游标的使用,能够提高数据库应用的效率和性能。
Oracle数据库游标是数据库编程中的一个重要概念,尤其在处理大量数据时,它们提供了一种有效且灵活的方法。游标允许程序逐行访问查询结果集,而不是一次性加载所有数据。这在处理复杂的数据操作,如循环处理、条件...
Oracle的游标是数据库开发中的一个重要概念,尤其在PL/SQL编程中,游标用于处理SQL查询结果集,使得我们能够逐行处理数据,而不仅仅局限于一次性获取所有数据。在这个主题中,我们将深入探讨游标的定义、类型、使用...
在异常处理方面,游标操作可能引发的异常需要通过异常处理语句进行捕获和处理,例如使用EXCEPTION WHEN ... THEN ... END;的结构。异常处理是确保数据库操作稳定性和健壮性的重要部分。自定义异常是开发者根据实际...
在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...
Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...
在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...
总之,Oracle数据库中的游标提供了灵活的数据处理能力,尤其是在需要逐行操作查询结果的情况下。通过显式游标,我们可以控制查询的执行流程,确保数据处理的精确性和效率。正确理解和使用游标是开发高效PL/SQL程序的...
Oracle数据库游标是PL/SQL编程中不可或缺的一部分,它们允许程序逐行处理查询结果,提供了更灵活的数据操作方式。在Oracle数据库中,游标主要分为两种类型:隐式游标和显式游标。 1. **隐式游标**: - 当在PL/SQL...
4. **游标在DML操作中的应用**: - 如果需要在游标内部进行DML操作,可以使用`for update`子句来锁定查询到的行。这在多用户环境中的并发控制中非常有用,确保了数据的一致性。 5. **有参显式游标**: - 显式游标...
Oracle游标是数据库编程中非常重要的一个概念,主要用于处理SQL查询的结果集。游标允许我们按行处理数据,逐条读取结果集,而不仅仅是一次性获取所有数据。在Oracle数据库中,游标对于复杂的事务处理、动态SQL以及...
Oracle游标是PL/SQL编程中的重要组成部分,主要用于处理单行或多行查询结果。游标允许程序员逐行处理查询结果,而不是一次性加载所有数据。在Oracle中,游标分为显式游标和隐式游标。 1. **隐式游标**:在PL/SQL中...
游标在ORACLE数据库中是处理SQL查询结果集的关键工具,它允许程序员逐行处理查询结果,而不是一次性加载所有数据。游标对于处理大量数据或需要分步处理数据的复杂业务逻辑尤其有用。 1. 静态游标 - **显式游标**:...
- 避免在循环中打开和关闭游标,尽可能减少游标操作次数。 - 选择合适的游标类型,隐式游标适用于简单操作,显式游标适合复杂情况。 以上只是对Oracle游标使用的一个简要概述,具体到《Oracle 游标使用大全》这份...
Oracle游标是数据库编程中非常重要的一个概念,它允许开发者逐行处理查询结果集,而不仅仅是一次性处理所有数据。在Oracle中,游标分为隐式游标和显式游标。 **一、游标简介** 游标的核心功能是提供一种方式来遍历...
通过本篇Oracle游标的使用大全,我们可以了解到Oracle数据库游标的类型、属性以及如何在PL/SQL中实现对数据集的逐行处理。这不仅有助于提升程序员的编程技能,也能使他们更深入地理解PL/SQL与Oracle数据库之间的交互...
总之,Oracle游标提供了处理查询结果的强大工具,使开发者能够灵活地在PL/SQL中操作数据。无论是隐式还是显式游标,都极大地增强了对数据库的交互能力,使得程序能根据查询结果进行适当的操作。理解并熟练运用游标是...