游标-----内存中的一块区域,存放的是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数据库中,游标(Cursor)是一种用于处理SQL查询结果集的方式。它允许用户逐行地读取和处理查询结果,这对于需要对每一行数据进行特定操作的情况非常...
根据提供的标题、描述以及部分代码内容,我们可以详细探讨Oracle游标的使用方法,特别是明确游标(Explicit Cursor)和隐式游标(Implicit Cursor)的区别及其具体应用方式。 ### Oracle游标简介 在Oracle数据库中...
本篇将详细解释Oracle游标的简易用法,并通过实例代码来演示如何使用。 首先,游标定义了一个SQL查询的结果集,但并不立即执行该查询。在Oracle中,游标由`DECLARE`语句定义,可以包括变量、条件等。例如: ```sql...
Oracle游标是数据库管理系统中的一种重要机制,它允许应用程序按需逐行处理查询结果集,而不是一次性处理所有数据。游标对于交互式和事务性的应用尤其有用,因为它们可以控制数据流并根据需要进行交互。 首先,让...
### Oracle游标与异常处理详解 #### 一、Oracle游标概述 **游标**是Oracle SQL中的一个重要概念,主要用于处理从数据库中提取的数据。它提供了在程序中逐行访问和处理查询结果的能力。 ##### 1.1 游标概念 - **...
### Oracle游标使用详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的功能,它允许用户能够逐行地从数据库中检索数据并进行处理。这对于需要进行复杂数据处理的应用程序来说是非常有用的。本文将详细介绍...
### Oracle游标的使用详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的功能,它允许用户能够逐行地访问查询结果集。游标提供了灵活的数据处理方式,尤其是在需要对每一行数据进行特定操作的情况下。...
### Oracle游标使用详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据行。通过游标,开发人员可以在PL/SQL块中一行一行地访问查询结果,从而实现对数据的灵活...
### Oracle游标使用详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种用于处理查询结果集的强大工具。它允许用户通过循环结构逐行读取数据,并进行相应的处理。游标分为显式游标和隐式游标两种类型。 -...
### ORACLE 游标详解 在Oracle数据库中,游标是一种强大的工具,用于处理查询结果集,特别是当结果集包含多行数据时。游标允许我们一行行地处理查询结果,这在处理大量数据或需要对每行结果进行特定操作时尤为有用...
父子游标详解 父子游标是 Oracle 中的一种机制,用于优化 SQL 语句的执行。它通过共享游标来减少开销,提高系统性能。下面是关于父子游标的详细解释: 1. 父游标和子游标 在 Oracle 中,每个 SQL 语句执行时,...
#### 一、Oracle游标简介 在Oracle数据库中,游标(Cursor)是一种用于处理查询结果集的机制。它允许用户逐行地访问查询结果,这对于处理大量数据时非常有用。游标分为显式游标和隐式游标两种类型。 - **显式游标*...
### Oracle游标详解 在Oracle数据库的编程环境中,游标是一种强大的工具,用于处理查询结果集,特别是当结果集包含多行数据时。游标允许我们一行行地访问查询结果,进行更细致的数据操作和控制。 #### 游标的基础...
### Oracle游标知识点详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种用于处理查询结果集的强大工具。它允许用户通过逐行访问数据来执行复杂的操作,如更新、删除或插入记录等。游标可以分为显式游标...
### Oracle 存储过程与游标使用详解 在Oracle数据库管理中,存储过程与游标是两个非常重要的概念。它们可以提高数据处理的效率、增强应用程序的灵活性,并且能够简化复杂的数据库操作。本文将根据提供的内容,深入...
Oracle数据库提供了两种主要类型的游标:隐式游标和显式游标。 1. **Oracle隐式游标** - **概念**:隐式游标是Oracle在后台自动管理的一种游标,每当执行一个DML(插入、更新、删除)或DDL语句时,系统都会自动...
### Oracle的游标使用详解 #### 一、游标概念介绍 在Oracle数据库中,游标(Cursor)是一种用于检索并处理多行数据的强大工具。它允许用户通过循环逐条处理查询结果集中的每一行数据,这对于需要进行复杂数据处理的...
#### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种数据库对象,它允许程序能够逐行处理查询结果集中的数据。与直接执行SQL语句获取整个结果集不同,游标可以逐行检索数据,这在处理大量数据时尤其...
Oracle存储过程返回游标是数据库开发中常见的操作,主要用于处理多行数据集合。在Oracle中,游标可以作为存储过程的输出参数,使得调用者能够遍历并处理存储过程执行后的结果集。这里我们将详细讲解两种实现方法:...