首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle数据库PL/SQL之进程和函数

2012-11-23 
oracle数据库PL/SQL之过程和函数四)过程1.基本概念:oracle允许在数据库的内部创建并存储编译过的PL/SQL程

oracle数据库PL/SQL之过程和函数
四)过程1.基本概念:        oracle允许在数据库的内部创建并存储编译过的PL/SQL程序,该类程序包括过程、函数、包和触发器。我们可以将商业逻辑、企业规则等写成过程或函数保存到数据库中,通过名称进行调用,以便更好的共享和使用。        过程中有三种类型的参数:in/out/in  out;
2.创建过程1)语法CREATE [OR REPLACE] PROCEDURE<过程名>        (<参数1>,[方式1]<数据类型1>,         <参数2>,[方式2]<数据类型2>,        ...)
IS/ASPL/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/ASPL/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;4.删除函数DROP FUNCTION count_num;

热点排行