`

oracle 游标详解 简单实例

 
阅读更多

游标-----内存中的一块区域,存放的是select 的结果

游标用来处理从数据库中检索的多行记录(使用SELECT语句)。利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集。

为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区。这个区包含了已经处理完的行数、指向被分析语句的指针,整个区是查询语句返回的数据行集。游标就是指向上下文区句柄或指针。

两种游标:
一、显示游标(需要明确定义!)

显示游标被用于处理返回多行数据的SELECT 语句,游标名通过CURSOR….IS 语句显示地赋给SELECT 语句。

在PL/SQL中处理显示游标所必需的四个步骤:

1)声明游标;CURSOR cursor_name IS select_statement

2)为查询打开游标;OPEN cursor_name

3)取得结果放入PL/SQL变量中;

FETCH cursor_name INTO list_of_variables;

FETCH cursor_name INTO PL/SQL_record;

4)关闭游标。CLOSE cursor_name

注意:在声明游标时,select_statement不能包含INTO子句。当使用显示游标时,INTO子句是FETCH语句的一部分。
1、 显式游标
select语句上 使用显式游标
能明确访问结果集
for循环游标
参数游标
解决多行记录的查询问题
fetch游标
二、隐式游标
所有的隐式游标都被假设为只返回一条记录。
使用隐式游标时,用户无需进行声明、打开及关闭。PL/SQL隐含地打开、处理,然后关掉游标。
例如:
…….
SELECT studentNo,studentName

INTO curStudentNo,curStudentName

FROM StudentRecord

WHERE name=’gg’;

上述游标自动打开,并把相关值赋给对应变量,然后关闭。执行完后,PL/SQL变量curStudentNo,curStudentName中已经有了值。
2、 隐式游标
单条sql语句所产生的结果集合
用关键字SQL表示隐式游标
4个属性 %rowcount 影响的记录的行数 整数
%found 影响到了记录 true
%notfound 没有影响到记录 true
%isopen 是否打开 布尔值 永远是false
多条sql语句 隐式游标SQL永远指的是最后一条sql语句的结果
主要使用在update 和 delete语句上


实际操作和例子:

 

1.建立一张表 mine, 属于sanydnc 用户,

列名:sid(number),sname(varchar2(10)),sage(number),插入一些数据;

2.打开一个sql窗口,并写入


declare
--sname_cursor sanydnc.mime.sname%type;--(引用mine表的字段sname的类型)
sname_cursor varchar2(10);
--total_id_cursor sanydnc.mime.sid%type;--(引用mine表的字段sid的类型)
total_id_cursor varchar2(10);
vage sanydnc.mime.sage%type;
cursor my_cursor is
select sname,round(sum(sid)/1,2) as total_id from sanydnc.mime where sanydnc.mime.sage<vage group by sname order by sname;
--vrow my_cursor%rowtype;--(引用定义的游标的一行记录的类型)
begin
vage := 10;

open my_cursor;
fetch my_cursor into sname_cursor,total_id_cursor;
DBMS_OUTPUT.PUT_LINE(sname_cursor||total_id_cursor);
close my_cursor;
end;

分享到:
评论

相关推荐

    详解Oracle游标的简易用法

    主要介绍了详解Oracle游标的简易用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Oracle游标的使用实例详解

    主要给大家介绍了关于Oracle游标使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或着工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Oracle存储过程返回游标实例详解

    Oracle存储过程返回游标有两种实现方法一种是声明系统游标,一种是声明自定义游标,本文将详细介绍,需要了解的朋友可以参考下

    Oracle中的游标和函数详解

    主要介绍了 Oracle中的游标和函数详解的相关资料,需要的朋友可以参考下

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    非常全的oracle文档

    五、 Oracle术语解释详解(摘自网络) 20 4.1. 数据库名 21 4.2. 数据库实例名 23 4.3. 数据库域名 24 4.4. 数据库服务名 24 六、 SYS和SYSTEM用户 25 七、 启动Oracle 25 八、 Oracle管理工具介绍 26 九、 查看Oracle...

    精通SQL--结构化查询语言详解

    4.2.2 本章实例用到的实例表 64 4.2.3 创建简单的非簇索引 66 4.2.4 多字段非簇索引的创建 69 4.2.5 使用unique关键字创建惟一索引 70 4.2.6 使用clusterde关键字创建簇索引 71 4.2.7 索引的销毁 73 4.2.8 ...

    php网络开发完全手册

    2.5.1 简单的表达式例子 36 2.5.2 表达式的分类 36 2.5.3 算术操作表达式 36 2.5.4 字符串操作表达式 38 2.5.5 逻辑操作表达式 38 2.5.6 比较操作表达式 39 2.5.7 位操作表达式 40 2.5.8 运算符的优先级 41 2.6 特殊...

    亮剑.NET深入体验与实战精要2

    读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例...

    亮剑.NET深入体验与实战精要3

    读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例...

Global site tag (gtag.js) - Google Analytics