SQL是用于访问Oracle数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程序逻辑, 下面在本文中将对游标的使用进行一下讲解,希望可以和大家共同学习进步。
游标字面理解就是游动的光标。游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。用数据库语言来描述游标就是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。
游标有两种类型:显式游标和隐式游标。游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。
当系统使用一个隐式游标时,可以通过隐式游标的属性来了解操作的状态和结果,进而控制程序的流程。隐式游标可以使用名字SQL来访问,但要注意,通过SQL游标名总是只能访问前一个处理操作或单行SELECT操作的游标属性。所以通常在刚刚执行完操作之后,立即使用SQL游标名来访问属性。游标的属性有四种,分别是SQL %ISOPEN,SQL %FOUND,SQL %NOTFOUND,SQL %ROWCOUNT。
SQL%ISOPEN返回的类型为布尔型,判断游标是否被打开,如果打开%ISOPEN等于true,否则等于false,即执行过程中为真,结束后为假。 54com.cn
SQL%NOTFOUND返回值为布尔型,判断游标所在的行是否有效,如果有效,则%FOUNDD等于true,否则等于false,即与%FOUND属性返回值相反。
SQL%FOUND返回值的类型为布尔型,值为TRUE代表插入 删除 更新或单行查询操作成功。 中国网管联盟www_bitscn_com
SQL%ROWCOUNT返回值类型为整型,返回当前位置为止游标读取的记录行数,即成功执行的数据行数。 示例代码如下:
set serveroutput on;
declare
varno varchar2(20);
varprice varchar2(20);
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
begin
if mycur%isopen = false then
open mycur(043925);
end if;
fetch mycur into varno,varprice;
while mycur%found
loop
dbms_output.put_line(varno||','||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;
end;
记录并不保存在数据库中,它与变量一样,保存在内存空间中,在使用记录时候,要首先定义记录结构,然后声明记录变量。可以把PL/SQL记录看作是一个用户自定义的数据类型。
游标for循环是显示游标的一种快捷使用方式,它使用for循环依次读取结果集中的行数据,当form循环开始时,游标自动打开(不需要open),每循环一次系统自动读取游标当前行的数据(不需要fetch),当退出for循环时,游标被自动关闭(不需要使用close)。使用游标for循环的时候不能使用open语句,fetch语句和close语句,否则会产生错误。
游标字面理解就是游动的光标。游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。用数据库语言来描述游标就是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。
游标有两种类型:显式游标和隐式游标。游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。
当系统使用一个隐式游标时,可以通过隐式游标的属性来了解操作的状态和结果,进而控制程序的流程。隐式游标可以使用名字SQL来访问,但要注意,通过SQL游标名总是只能访问前一个处理操作或单行SELECT操作的游标属性。所以通常在刚刚执行完操作之后,立即使用SQL游标名来访问属性。游标的属性有四种,分别是SQL %ISOPEN,SQL %FOUND,SQL %NOTFOUND,SQL %ROWCOUNT。
SQL%ISOPEN返回的类型为布尔型,判断游标是否被打开,如果打开%ISOPEN等于true,否则等于false,即执行过程中为真,结束后为假。 54com.cn
SQL%NOTFOUND返回值为布尔型,判断游标所在的行是否有效,如果有效,则%FOUNDD等于true,否则等于false,即与%FOUND属性返回值相反。
SQL%FOUND返回值的类型为布尔型,值为TRUE代表插入 删除 更新或单行查询操作成功。 中国网管联盟www_bitscn_com
SQL%ROWCOUNT返回值类型为整型,返回当前位置为止游标读取的记录行数,即成功执行的数据行数。 示例代码如下:
set serveroutput on;
declare
varno varchar2(20);
varprice varchar2(20);
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
begin
if mycur%isopen = false then
open mycur(043925);
end if;
fetch mycur into varno,varprice;
while mycur%found
loop
dbms_output.put_line(varno||','||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;
end;
记录并不保存在数据库中,它与变量一样,保存在内存空间中,在使用记录时候,要首先定义记录结构,然后声明记录变量。可以把PL/SQL记录看作是一个用户自定义的数据类型。
游标for循环是显示游标的一种快捷使用方式,它使用for循环依次读取结果集中的行数据,当form循环开始时,游标自动打开(不需要open),每循环一次系统自动读取游标当前行的数据(不需要fetch),当退出for循环时,游标被自动关闭(不需要使用close)。使用游标for循环的时候不能使用open语句,fetch语句和close语句,否则会产生错误。
发表评论
-
Oracle同义词,给你带来的几个惊喜
2009-03-03 19:59 1492在2008年,甲骨文在同SAP ... -
Oracle架构的基础知识(入门级)
2009-03-03 19:58 1486学习oracle,最好首先了解Oracle的框架。这样对Ora ... -
ORACLE中的各种数据类型详细的介绍
2009-03-03 19:56 662当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。 ... -
Oracle触发器详细介绍
2009-03-03 19:55 668触发器 是特定事件出 ... -
Oracle的初学者入门心得
2009-03-03 19:53 723Oracle的初学者入门心得 ... -
抽象数据类型,让Oracle数据库数据管理更加容易
2009-03-03 19:52 721姓名,其实包括两个部 ... -
深入解析Oracle数据库安全策略
2009-03-03 19:50 777Oracle是关系型数据库管 ... -
Oracle实例和Oracle数据库详解
2009-03-03 18:30 1800一、ORACLE实例 1、O ... -
Oracle中SQL语句解析的步骤
2009-03-03 16:11 1575我们都知道在Oracle中每条SQL语句在执行之前都需要经过解 ... -
oracle 常用命令(三)
2009-03-03 16:00 13360 推荐二.数据定义 (DDL) 部分 1.CREATE ( ... -
ORACLE常用命令(二)
2009-03-03 15:59 849二、用户如何有效地利用数据字典 ORACLE的数据字典是 ... -
Oracle常用命令(一)
2009-03-03 15:57 529Oracle常用命令 第一章:日志管理 1.forci ... -
Oracle常用维护语句
2009-03-03 15:52 6951 创建表空间 CREATE TA ... -
SQL Server与Oracle、DB2三种数据库比较
2009-03-03 15:51 1113开发数据库应用,选择 ... -
Oracle调优综述
2009-03-03 15:49 1492在过去的十年中, Oracle ... -
Oracle数据字典使用入门
2009-03-03 15:48 717每个Oracle数据库中包括一个被称为“元数据”的集合,或者说 ... -
Oracle数据库支持笔记--完全指南
2009-03-03 15:46 687要顺利地解决一个问题很不容易 ,当看了Metalink上不完整 ...
相关推荐
Oracle 数据库游标使用大全,自己整的,比你搜的好
Oracle数据库游标使用大全 Oracle数据库游标使用大全Oracle数据库游标使用大全
Oracle数据库游标使用示例 Oracle数据库游标使用示例 Oracle数据库游标使用示例
简单的oracle游标使用小例子~~ 一份文档,实验用的。
当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句。本文介绍了Oracle数据库游标的使用方法。
Oracle数据库游标使用大全
oracle数据库游标实验报告!oracle数据库游标实验报告!oracle数据库游标实验报告!
oracle数据库的游标详述,以及各游标相关信息的具体代码示例。可以帮助初学者以及数据库管理员更好的理解和学习游标的使用和操作。
oracle数据库 游标、存储过程和触发器
Oracle数据库的游标学习总结Oracle数据库的游标学习总结
oracle数据库游标使用详细介绍 自己总结的
oracle数据库忽然连不上了,一查是游标数量超了。 1.查看游标数 show parameter open_cursors 2.修改游标数 alter system set open_cursors = 10000; 3.获取打开的游标数 select o.sid, osuser, machine, count...
Oracle数据库添加 更新 游标 过程 Java Project Oracle数据库添加 更新 游标 过程 Java Project
Oracle数据库中游标使用研究.pdf
Oracle12c数据库基础教程Oracle12c数据库游标、存储过程和触发器.pptx
使用游标更新数据库
什么是游标?游标有什么作用?Oracle游标的类型?Oracle游标的状态有哪些,怎么使用游标属性?如何使用显示游标,?如何遍历循环游标?