游标是构建在PL/SQL中的,因为在PL/SQL中的select语句只能返回一行或没有返回值.想要获得多行记录,就要使用游标.
1. 隐式游标
在PL/SQL中为所有SQL数据操纵语句(包括返回一行的select)隐式声明游标,称为隐式游标的原因是用户不能直接命名和控制此类游标.当用户在PL/SQL中使用数据操纵语言(DML)时,Oracle预先定义一个名为SQL的隐式游标.
隐式游标的属性:
%FOUND 只有在DML语句影响一行或多行时%FOUND属性才返回true,当返回为NULL值时,则为false.
%NOTFOUND与%FOUND相反,当没有影响到一行时%NOTFOUND属性返回false,当DML语句影响一行或多行时,则返回false.
%ROWCOUNT返回DML语句影响的行数.如果DML语句没有影响任何行,则返回0.
%ISOPEN %ISOPEN返回游标是否已打开的值,在执行SQL语句之后,Oracle自动关闭游标,所以隐式游标的%ISOPEN属性始终为false.
隐式游标属性的使用:
SQL%隐式游标的属性
Select …into的使用:
用一个变量接收select查询后的一个返回值.如果不用select… into的话,会返回一个错误.
2. 显式游标
显式游标是由用户显式声明的游标.根据游标中定义的查询,查询返回的行集可以包含零行或多行,这些行称为活动集,游标将指向活动集的当前行.
显式游标的操作过程:
Cursor 游标名[用于为游标指定输入的参数可为多个] 这里是声明游标
[定义游标提取的行的类型] is 指定游标定义的select查询语句;
Begin
Open 游标名[用于为游标指定输入的参数] ; 这里是打开游标
Loop 循环从游标中提取记录
Fetch 指定游标名 into 用于接收返回的行; 提取记录
Exit when 游标名%NOTFOUND; 退出游标条件
End loop
Close 游标名 关闭游标
End
注:显式游标可以指定参数,也可不指定参数
使用显式游标删除或更新
使用游标时如果处理过程中需要删除或更新行,在定义游标时必须使用select…for update语句,而在执行delete和update时使用where current of 子句指定游标的当前行.
使用显式游标删除或更新的语法:
Cursor 游标名 这里是声明游标
Is select….for update[列名];
Begin
Open 游标名[用于为游标指定输入的参数] ; 这里是打开游标
Loop 循环从游标中提取记录
Fetch 指定游标名 into 用于接收返回的行; 提取记录
Exit when 游标名%NOTFOUND; 退出游标条件
Update…set…where currend of 游标名; 更新行
Delete from…where currend of 游标名; 删除行
End loop
Close 游标名 ; 关闭游标
End
循环游标的使用:
Cursor 游标名[用于为游标指定输入的参数可为多个] 这里是声明游标
[定义游标提取的行的类型] is 指定游标定义的select查询语句;
Begin
Open 游标名[用于为游标指定输入的参数]; 这里是打开游标
For record_index in 游标名
Loop 循环从游标中提取记录
Fetch 指定游标名 into 用于接收返回的行; 提取记录
End loop
Close 游标名 关闭游标
End
注: record_index是PL/SQL声明的记录变量,此变量的属性声明为%rowtype类型,作用域在for循环之内,即在for循环之外不能访问此变量
分享到:
相关推荐
在Oracle数据库中,游标(Cursor)是一种非常重要的编程工具,...以上内容详细介绍了Oracle中游标的使用方法,包括基本概念、类型和在PL/SQL中的操作。通过学习和实践,你可以熟练掌握游标,提升在数据库编程中的效率。
Oracle游标是数据库管理系统中的一种重要机制,它允许我们逐行处理查询结果,尤其是在面对返回多行记录的SQL语句时。游标提供了一种控制流的方式,让我们能够按需处理每一行数据,而无需一次性加载所有数据到内存中...
### Oracle中游标的应用详解 #### 一、游标概念及分类 游标在Oracle数据库中扮演着重要的角色,尤其在处理多行数据时显得尤为关键。游标本质上是SQL的一个内存工作区,用于存储从数据库中提取的数据块。为了提高...
Oracle中的游标是PL/SQL编程中的核心概念,主要用于处理多行查询结果。游标允许程序逐行处理数据库查询返回的数据,而不是一次性加载所有记录。根据声明方式不同,Oracle的游标可以分为隐式游标和显式游标。 隐式...
【Oracle9i中游标的应用】 Oracle数据库是关系型数据库管理系统的一个典型代表,它提供了丰富的功能,其中游标是数据库编程的重要组成部分。游标允许开发者逐行处理查询结果集,对于交互式应用程序的设计尤其关键。...
以上就是Oracle中游标的基本用法。通过游标,开发者能够灵活地遍历查询结果,进行复杂的逻辑处理,从而实现更精细的数据操作。在实际开发中,熟练掌握游标的使用是提高代码效率和可维护性的重要手段。
oracle中游标的使用方法,便于初学者参考,精通人员欢迎指正在。
在 SQL 中游标的使用比较复杂,不能同时打开一个以上的游标,因为它只有一个全局变量@@Fast_statues 而且声明游标也麻烦,关闭游标时也不清除内存的;Oracle 中游标是以提高速度全部统一的单项游标,可以允许多用户...
7. **PL/SQL中游标的可修改性:** - 正确。PL/SQL中的游标可以被更新或修改。 8. **表与数据文件的关系:** - 正确。一个表可以分布在多个数据文件上,而一个数据文件也可以存储多个表的数据。 9. **HAVING子句...
9. PL/SQL中游标的数据是可以改变的 —— 错误(F) 10. 数据库概念模型用于概念结构设计 —— 正确(T) 七、简答题和SQL编程题涉及的知识点: 1. 数据与程序的逻辑独立性与物理独立性:逻辑独立性允许用户独立于...
本文详细介绍了Oracle中游标的使用方法,包括隐式游标和显式游标的定义、属性以及具体的操作步骤。通过这些知识点的学习,可以更好地理解和掌握如何在Oracle数据库中高效地处理数据。 通过本文的学习,你应该能够...
PL/SQL中游标的数据是可以改变的。数据库概念模型主要用于数据库概念结构设计。 数据与程序的逻辑独立性和物理独立性是指数据的逻辑结构与物理存储是独立的,程序的逻辑结构与物理实现是独立的。关系代数中等值连接...
本文将详细介绍Oracle中游标的使用方法,包括游标的定义、类型以及如何在实际编程中应用这些概念。 #### 二、游标的定义与作用 游标是SQL的一个内存工作区,它可以由系统或用户定义。它主要用于临时存储从数据库中...
本文详细介绍了Oracle中游标的使用方法,包括基本语法、简化使用方式以及如何利用游标进行数据更新和删除等高级操作。通过这些知识点的学习,读者可以更好地掌握如何在实际开发中运用游标来提高数据处理效率和灵活性...
检查代码中游标的关闭情况,避免资源泄漏。 8. **锁冲突** - `java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource`: 两个或多个事务因相互等待对方释放资源而陷入死锁。通过死锁...
本文将详细介绍Oracle中游标的使用方法、分类及其在存储过程中的应用。 #### 二、基本概念 **1. SELECT INTO 语句** - 在PL/SQL中,`SELECT INTO` 语句通常用来查询单行数据,并将查询结果直接赋值给指定的变量。...
6. **PL/SQL 中游标的使用** - 游标(Cursor)用于遍历查询结果集,提供了一种逐行处理数据的方式。 - 在PL/SQL中,可以声明、打开、读取和关闭游标,以便逐条处理查询结果。 7. **动态PL/SQL** - 动态PL/SQL...