`

oracle 的函数、存储过程、游标、简单实例

阅读更多

首先见一个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管道函数和动态游标的代码片段及描述,我们可以深入了解其背后的技术要点与实现细节。下面将逐一解析这些知识点。 ### Oracle管道函数 管道函数(Pipe-lined Function)是Oracle中一种特殊类型的...

    Oracle存储过程实例使用显示游标

    在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...

    oracle存储过程、游标、函数

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程特性,如存储过程、游标和函数,使得数据库管理和数据处理更为高效。在这个主题中,我们将深入探讨这三个关键概念及其在实际应用中的作用。 **...

    oracle笔记(存储过程函数触发器游标流程控制等)

    这份"oracle笔记(存储过程函数触发器游标流程控制等)"涵盖了Oracle数据库管理中的关键知识点,包括但不限于以下几个方面: 1. **存储过程与函数**:存储过程是预编译的SQL语句集合,用于执行特定任务。它们可以提高...

    ORACLE 游标使用示例

    在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...

    oracle函数大全与存储过程语法-中文.rar

    - `oracle存储过程的使用.txt`可能提供了实用的实例和最佳实践,指导如何在实际项目中有效利用存储过程,包括事务管理、游标、表和视图操作等。 通过深入研究这些文档和示例,无论是初学者还是经验丰富的开发者,...

    Oracle游标实例.txt

    标题“Oracle游标实例”直接点明了文章的主题,即通过具体的示例来讲解Oracle中的游标使用方法。描述重复了标题内容,这表明文件的主要目的是提供关于Oracle游标的实例代码,供学习和参考。 ### 标签 标签“Oracle...

    oracle存储过程语法及实例讲解

    ### Oracle存储过程语法及实例详解 #### 一、概述 Oracle存储过程是一种在数据库服务器上预编译并存储的程序块,它可以包含一系列SQL语句和控制流语句。存储过程提高了应用程序性能,并增强了数据的一致性和安全性...

    游标实例与返回结果集的存储过程

    根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...

    oracle存储过程(语法实例).pdf

    对于分页查询,Oracle提供了高效的存储过程实现,如游标配合的方式。 8. **Java与存储过程的交互** Java可以通过JDBC调用Oracle存储过程,包括`CallableStatement`对象来执行过程并处理输入/输出参数。 9. **更新...

    PLSQL操作存储过程、函数、游标、触发器、定时任务等实例SQL脚本.zip

    这个压缩包“PLSQL操作存储过程、函数、游标、触发器、定时任务等实例SQL脚本.zip”包含了关于如何使用PL/SQL来处理数据库的各种关键概念的实例脚本。下面,我们将详细探讨这些知识点。 1. **存储过程**:存储过程...

    Oracle数据库存储过程技术文档.doc

    第一章 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 包...

    oracle游标优化

    - **循环游标**(Ref Cursor):可以作为参数传递给存储过程或函数,实现游标数据的动态返回。 3. **作用**: - **数据检索**:从表或视图中获取数据。 - **数据更新**:基于查询结果更新数据库中的数据。 - **...

    Orcle游标实例.txt

    ### Oracle 游标实例解析及应用 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种数据库对象,它允许程序能够逐行处理查询结果集中的数据。与直接执行SQL语句获取整个结果集不同,游标可以逐行...

    oracle 存储过程学习经典

    #### 十一、Oracle高效分页存储过程实例 - **实现思路**: 使用游标结合ROWNUM进行分页查询。 - **示例代码**: 设计一个存储过程,接收页码和每页记录数作为参数,返回对应页面的数据。 #### 十二、结论 - **总结*...

    oracle存储过程学习经典[语法+实例+调用].doc

    ### Oracle存储过程学习经典知识点详解 #### Oracle存储过程概述与基础知识 存储过程是数据库中预编译的一系列SQL和PL/SQL语句的集合,它提供了执行复杂操作的能力,如事务处理、数据处理和错误处理。Oracle存储...

    oracle存储过程学习经典

    PACKAGE集合了多个存储过程、函数、变量和SQL语句,允许共享变量和游标,提供了一种模块化的方式来组织和管理复杂的数据库逻辑。 综上所述,Oracle存储过程的学习不仅涉及基础语法和结构的理解,还需要掌握其高级...

    Oracle PL SQL存储过程以及函数编

    Oracle PL/SQL是Oracle数据库系统中的一个强大工具,它结合了SQL的数据操作能力和...对于初学者,可以参考《Oracle PLSQL存储过程以及函数编写.pdf》和《本地规范实例详解.pdf》等资料,结合实际练习来巩固理论知识。

Global site tag (gtag.js) - Google Analytics