首先见一个test_user表,有四个字段,分别为id,name,age,sex.其sql为:
CREATE TABLE TEST_USER
(
ID VARCHAR2(40 BYTE),
NAME VARCHAR2(40 BYTE),
AGE INTEGER,
SEX VARCHAR2(5 BYTE)
)
1.存储过程
存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。举一个实例。我们把TEST_USER
表里的连个字段放到变量中去,其写法如下
CREATE OR REPLACE PROCEDURE test
(
aa in varchar2
)IS
a1 INTEGER :=0;
a2 varchar2(40);
BEGIN
SELECT age,sex into a1,a2 FROM test_user where id=aa;
END test;
2.函数
函数和存储过程没有很大的区别,主要有2点:
从返回的参数来看:存储过程可以返回多个数值,函数只能返回一个。
从调用情况来看:如果在SQL中调用的话只能使用函数不能用过程。
下面举一个简单的实例,test_user.age%TYPE表示所定义的参数和test_user.age字段的类型相同,如下:
CREATE OR REPLACE FUNCTION test_fun (age IN test_user.age%TYPE,sex IN test_user.sex%TYPE)
RETURN test_user.name%TYPE
IS
name test_user.name%TYPE;
BEGIN
SELECT test_user.name INTO name
FROM test_user
WHERE
age=age AND sex=sex ;
RETURN name;
EXCEPTION WHEN NO_DATA_FOUND THEN RETURN ' '; ---发生异常返回空
END;
3.游标
游标其实是一个放入内存的临时表。实例如下:
declare
age test_user.age%type :=0; --定义与表字段相同类型
cursor mycursor is --定义游标
select * from test_user
where sex='女' and name like '%i%';
my_record mycursor%rowtype; --定义游标记录类型
Counter int :=0;
begin
open mycursor; --打开游标
if mycursor%isopen then --判断打开成功
loop --循环获取记录集
fetch mycursor into my_record; --获取游标中的记录
if mycursor%found then --游标的found属性判断是否有记录
dbms_output.put_line(my_record.name);
else
exit;
end if;
end loop;
else
dbms_output.put_line('游标没有打开');
end if;
close mycursor;
end;
分享到:
相关推荐
根据提供的Oracle管道函数和动态游标的代码片段及描述,我们可以深入了解其背后的技术要点与实现细节。下面将逐一解析这些知识点。 ### Oracle管道函数 管道函数(Pipe-lined Function)是Oracle中一种特殊类型的...
在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程特性,如存储过程、游标和函数,使得数据库管理和数据处理更为高效。在这个主题中,我们将深入探讨这三个关键概念及其在实际应用中的作用。 **...
这份"oracle笔记(存储过程函数触发器游标流程控制等)"涵盖了Oracle数据库管理中的关键知识点,包括但不限于以下几个方面: 1. **存储过程与函数**:存储过程是预编译的SQL语句集合,用于执行特定任务。它们可以提高...
在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...
- `oracle存储过程的使用.txt`可能提供了实用的实例和最佳实践,指导如何在实际项目中有效利用存储过程,包括事务管理、游标、表和视图操作等。 通过深入研究这些文档和示例,无论是初学者还是经验丰富的开发者,...
标题“Oracle游标实例”直接点明了文章的主题,即通过具体的示例来讲解Oracle中的游标使用方法。描述重复了标题内容,这表明文件的主要目的是提供关于Oracle游标的实例代码,供学习和参考。 ### 标签 标签“Oracle...
### Oracle存储过程语法及实例详解 #### 一、概述 Oracle存储过程是一种在数据库服务器上预编译并存储的程序块,它可以包含一系列SQL语句和控制流语句。存储过程提高了应用程序性能,并增强了数据的一致性和安全性...
根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...
对于分页查询,Oracle提供了高效的存储过程实现,如游标配合的方式。 8. **Java与存储过程的交互** Java可以通过JDBC调用Oracle存储过程,包括`CallableStatement`对象来执行过程并处理输入/输出参数。 9. **更新...
这个压缩包“PLSQL操作存储过程、函数、游标、触发器、定时任务等实例SQL脚本.zip”包含了关于如何使用PL/SQL来处理数据库的各种关键概念的实例脚本。下面,我们将详细探讨这些知识点。 1. **存储过程**:存储过程...
第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包...
- **循环游标**(Ref Cursor):可以作为参数传递给存储过程或函数,实现游标数据的动态返回。 3. **作用**: - **数据检索**:从表或视图中获取数据。 - **数据更新**:基于查询结果更新数据库中的数据。 - **...
### Oracle 游标实例解析及应用 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种数据库对象,它允许程序能够逐行处理查询结果集中的数据。与直接执行SQL语句获取整个结果集不同,游标可以逐行...
#### 十一、Oracle高效分页存储过程实例 - **实现思路**: 使用游标结合ROWNUM进行分页查询。 - **示例代码**: 设计一个存储过程,接收页码和每页记录数作为参数,返回对应页面的数据。 #### 十二、结论 - **总结*...
### Oracle存储过程学习经典知识点详解 #### Oracle存储过程概述与基础知识 存储过程是数据库中预编译的一系列SQL和PL/SQL语句的集合,它提供了执行复杂操作的能力,如事务处理、数据处理和错误处理。Oracle存储...
PACKAGE集合了多个存储过程、函数、变量和SQL语句,允许共享变量和游标,提供了一种模块化的方式来组织和管理复杂的数据库逻辑。 综上所述,Oracle存储过程的学习不仅涉及基础语法和结构的理解,还需要掌握其高级...
Oracle PL/SQL是Oracle数据库系统中的一个强大工具,它结合了SQL的数据操作能力和...对于初学者,可以参考《Oracle PLSQL存储过程以及函数编写.pdf》和《本地规范实例详解.pdf》等资料,结合实际练习来巩固理论知识。