`

oracle数据库PL/SQL之过程和函数(转)

阅读更多

1.基本概念:
        oracle允许在数据库的内部创建并存储编译过的PL/SQL程序,该类程序包括过程、函数、包和触发器。我们可以将商业逻辑、企业规则等写成过程或函数保存到数据库中,通过名称进行调用,以便更好的共享和使用。
        过程中有三种类型的参数:in/out/in  out
2.创建存储过程
1)语法
CREATE [OR REPLACE] PROCEDURE<过程名>
        (<参数1>,[方式1]<数据类型1>,
         <参数2>,[方式2]<数据类型2>,
        ...)
IS/AS
PL/SQL过程体;
2)示例
CREATE OR REPLACE PROCEDURE count_num
        (in_sex in TEACHERS.SEX%TYPE)
AS
        out_num NUMBER;
BEGIN
        IF in_sex='M' THEN
                SELECT count(SEX) INTO out_num
                FROM TEACHERS
                WHERE SEX='M';
                dbms_output.put_line('NUMBER of Male Teachers:'||out_num);
        ELSE
                SELECT count(SEX) INTO out_num
                FROM TEACHERS
                WHERE SEX='F';
                dbms_output.put_line('NUMBER of Female Teachers:'||out_num);
        END IF;
END count_num;
3.调用过程
EXECUTE count_num('M');
EXECUTE count_num('F');
4.删除过程
DROP PROCEDURE count_num; 
函数
1.基本概念
用于计算和返回一个值,调用时需要用表达式;
2.创建函数
CREATE [OR REPLACE] FUNCTION<函数名>
        (<参数1>,[方式1]<数据类型1>,
         <参数2>,[方式2]<数据类型2>,
        ...)
RETURN<表达式>
IS/AS
PL/SQL过程体; --必须要有一个RETURN子句 
CREATE OR REPLACE FUNCTION count_num
        (in_sex in TEACHERS.SEX%TYPE)
AS
        return NUMBER;
BEGIN
        IF in_sex='M' THEN
                SELECT count(SEX) INTO out_num
                FROM TEACHERS
                WHERE SEX='M';
        ELSE
                SELECT count(SEX) INTO out_num
                FROM TEACHERS
                WHERE SEX='F';
        END IF;
        RETURN(out_num);
END count_num
3.调用函数
DECLARE
        m_num NUMBER;
        f_num NUMBER;
BEGIN
        m_num:=count_num('M');
        f_num:=count_num('F');
END;
或者:select count_num('M')  from dual,select count_num('F')  from dual
函数可以在查询中直接使用。
4.删除函数
DROP FUNCTION count_num;

分享到:
评论

相关推荐

    oracle pl/sql 存储过程和函数与触发器

    oracle pl/sql 存储过程和函数与触发器

    12oracle的PL/SQL编程-函数.包.触发器 PPT

    12oracle的PL/SQL编程-函数.包.触发器 PPT 12oracle的PL/SQL编程-函数.包.触发器 PPT

    oracle PL/SQL测试题目和详细答案

    pl/sql存储过程,函数,游标,以及存储过程中的基础知识,绝对值得你收藏的经典题目,让你的pl/sql得到最大的锻炼。让你的数据库逻辑更加灵活。

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

     第19章 pl/sql函数  第20章 pl/sql包  第21章 触发器  第22章 使用对象类型 第四部分 pl/sql系统包  第23章 使用大对象  第24章 读写os文件  第25章 开发多媒体应用  第26章 开发web应用  第27章 dbms_sq...

    Oracle/PL/SQL函数说明

    本人经过多年的工作整理的Oracle/PL/SQL函数说明,TXT版本的,希望能对你有所帮助。

    Oracle PL/SQL语言初级教程

    3.PL/SQL单行函数和组函数详解 29 单行字符串函数 30 单行转换函数 37 SQL中的组函数 40 嵌套函数 42 4.Oracle数据库数据对象分析(上) 42 删除表和更改表名 46 管理视图 47 5.Oracle数据库数据对象分析(中) 49 ...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

     第19章 pl/sql函数  第20章 pl/sql包  第21章 触发器  第22章 使用对象类型 第四部分 pl/sql系统包  第23章 使用大对象  第24章 读写os文件  第25章 开发多媒体应用  第26章 开发web应用  第27章 dbms_sq...

    Oracle PL/SQL程序设计(第5版)(下册) 第一部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle 11g SQL和PL SQL从入门到精通〖送源代码〗

     第19章PL/SQL函数  第20章PL/SQL包  第21章触发器  第22章使用对象类型 第四部分PL/SQL系统包  第23章使用大对象  第24章读写OS文件  第25章开发多媒体应用  第26章开发Web应用  第27章DBMS_SQ动态SQL  ...

    PL/SQL程序设计

    本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的主要特点,以及了解PL/SQL语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干...

    PL/SQL 程序设计

    PL/SQL 程序设计 本章主要重点:  PL/SQL概述  PL/SQL块结构  PL/SQL流程  运算符和表达式  游标  异常处理  数据库存储过程和函数  包  触发器

    oracle pl/sql编程

    pl/sql 编程和oracle的函数查询,非常好用,欢迎下载

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

    ORACLE PL/SQL 基础教程及参考

    PL/SQL是嵌入到Oracle服务器和开发工具中的,具有很高的执行效率和同Oracle数据库的完美结合。在PL/SQL模块中可以使用查询语句和数据操纵语句(即进行DML操作),这样就可以编写具有数据库事务处理功能的模块。 至于...

    Oracle PL SQL

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

    Oracle_PLSQL语言基础

    PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型  . PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有...

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

    Oracle数据库SQL和PL/SQL实例教程 非常适用于初学者。结合例子深刻形象的讲解。 第1章 关系数据库与SQL语言环境 第2章 数据查询 第3章 数据操作 第4章 表和视图 第5章 其他数据库对象 第6章 SQL基础 第7章 游标和...

Global site tag (gtag.js) - Google Analytics