`

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数据库存储过程技术文档.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 包...

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

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

    Oracle数据库SQL和PL SQL实例教程 高继民(ppt)

    oracle数据库ppt 第1章 关系数据库与SQL语言环境 第2章 数据查询 第3章 数据操作 第4章 表和视图 第5章 其他数据库对象 第6章 SQL基础 ...第8章 存储过程、函数和包 第9章 触发器 第10章 数据库开发应用实例

    Oracle中的游标和函数详解

    主要介绍了 Oracle中的游标和函数详解的相关资料,需要的朋友可以参考下

    Oracle入门实例

    适用于刚入门oracle的同志,包括表,视图,函数,游标,存储过程的创建,例子简单易懂,注释详细,不要错过!

    21天学通Oracle

    第8章 函数与存储过程(教学视频:48分钟) 138 8.1 函数 138 8.1.1 函数简介 138 8.1.2 创建函数 139 8.1.3 函数中的括号 140 8.1.4 函数的参数 141 8.1.5 函数的确定性 142 8.1.6 典型函数举例 143 8.2 ...

    oracle 入门很简单.zip

    目录 第1章数据库简介ppt ...第17章函数与存储过程ppt 第18章数据车性能优化.ppt 第l9章数据库一致性与事务管理。ppt 第20章并发控制.ppt 第2l章Oracle在开发中的应用ppt 第22章Oracle+Hibernate应用实例.ppt

    Oracle数据库SQL和PL/SQL实例教程

    Oracle数据库SQL和PL/SQL实例教程 非常适用于初学者。结合例子深刻形象的讲解。 第1章 关系数据库与SQL语言环境 第2章 数据查询 ...第8章 存储过程、函数和包 第9章 触发器 第10章 数据库开发应用实例

    Oracle数据库SQL和PL SQL实例教程PPT(推荐)

    第1章 关系数据库与SQL语言环境.ppt 第2章 数据查询.ppt 第3章 数据操作.ppt 第4章 表和视图.ppt 第5章 其他数据库对象.ppt ...第8章 存储过程、函数和包.ppt 第9章 触发器.ppt 第10章 数据库开发应用实例.ppt

    oracle sql 学习示例

    一些学习sql语句的例句。包括存储过程、游标、自定义函数等各种高难度sql语句写法。

    超详细ORACLE培训实例

    超详细ORACLE培训实例 目录 引言 .................... 3 第一章 数据库基础 .......... 6 第二章 Oracle 入门 .......... 6 第三章 查询基础 ............ 11 第四章 单行函数 ............ 14 第五章 分组函数 .....

    Oracle从基础到熟练(太实用了)

    ①:存储过程 ②:函数 ③:自主事务处理 ④:包规范|包主体 十一.触发器|内置包 ①:触发器类型 ②:触发器原理 ③:new和old 两个行类型变量 ④:递归 ⑤:内置包 十二.导入导出 ①:导入导出/整个DB/表空间/表/...

    Oracle PL SQL

    走进Oracle、认识PL/SQL、数据表的基本操作、表中数据的基本操作、数据的基本查询、查询中函数的使用、数据表的高级查询、索引及视图的使用、数据类型、流程控制、游标、存储过程和函数、触发器、异常处理、事务和锁...

    sql总结.doc

    通过ROWCOUNT查看游标指向的行:(隐式游标实例) 例: DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v_count from dept; --返回一个隐式游标 dbms_output.put_line('SQL%ROWCOUNT = '||SQL%COUNT); END; / ...

    学生成绩管理系统Oracle全部SQL语句.txt

    选定某一主题,运用oracle数据库,以及相关技术...2、块、游标、储存过程、函数、触发器等的设计及调用正确; 3、报告文档说明条理清晰,格式正确,写作规范 4、系统运行良好,有一定的独立性与创新性,态度积极认真;

    oracle PL_SQL 教程

    oracle 教程 是我的学习笔记。 关于 存储过程(procedure) , 函数(function) 游标(curser) , 任务(job) 等都有详细的说明了实例演示, 每个实例都是经过测试的。

    oracle教程PLSQL

    oracle教程 里面包含全部的从基础到游标 存储过程 触发器 包 函数的详细的代码,涉及面很全,可以通过修改其实例代码,达到你所需要的效果,里面详细的介绍基础的SQL以后后面比较复杂的PLSQL

    Oracle Database 11g初学者指南--详细书签版

    5.7 如何创建存储过程以及创建存储过程的原因 146 5.8 函数的创建和使用 149 5.9 调用PL/SQL程序 151 5.10 本章测验 152 第6章 数据库管理员 153 6.1 了解DBA的工作 154 6.2 执行日常操作 154 6.2.1 体系结构...

    非常全的oracle文档

    十九、 Oracle函数 106 19.1. 字符函数 106 19.2. 数字函数 108 19.3. 聚合函数 109 19.4. 日期时间函数 110 19.5. 转换函数 111 19.6. 日期时间格式参数 113 19.7. 分析函数 114 19.8. 通用函数 115 19.9. GROUP BY...

Global site tag (gtag.js) - Google Analytics