admin管理员组

文章数量:1794759

Oracle中用户自定义函数(五)

Oracle中用户自定义函数(五)

目录

1.函数参数的模式

2.创建函数

(1)可视化方式创建函数

(2) 命令的方式创建函数

①创建格式

②模版格式

③例子1

④调用函数

3.删除函数

(1)可视化方式

(2)命令方式



学习Oracle数据库相关基本操作(一)

学习Oracle数据库的新建表的基本操作(二)

学习Oracle数据库新建数据库操作(三)

学习Oracle数据库并对数据进行查询,插入等操作(四)

关于Oracle中的关闭和启动数据库的几种方式(五)

Oracle中含替换变量的查询(二)

Oracle中数据库的查询(三)

PL/SQL基础知识点(一)

PL/SQL变量,常量和数据类型(二)

PL/SQL基本程序结构和语句(三)

Oracle中系统内置函数(四)

1.函数参数的模式

(1)IN模式:表示该参数是输入给函数的参数,也就是说在函数中不能再改IN模式的参数进行赋值了。

(2)OUT模式:表示该参数在函数中被赋值,并可以传给函数调用程序(也就是在函数可以被重新的赋值)。

(3)IN OUT模式:表示该参数既可以传值也可以被赋值。

2.创建函数 (1)可视化方式创建函数

 

(2) 命令的方式创建函数 ①创建格式

CREATE [OR REPLACE] FUNCTION <函数名>

        <参数名1>,<参数模式><数据类型>

        <参数名2>,<参数模式><数据类型>

        ……

        RETURN <返回值类型>

        {IS | AS}

        [声明变量]

        BEGIN

                <函数体>

                [RETURN (<返回表达式>);]

        END [<函数名>];

提示:使用OR REPLACE表示当前的函数会覆盖之前同名的函数。

②模版格式

CREATE  OR REPLACE  FUNCTION  函数名

        in_pmt IN char,

        out_pmt OUT char,

        in_out_pmt IN OUT char

        RETURN char

        AS

        return_char char

        BEGIN

                <函数体>

                [RETURN (return_char);

        END [<函数名>];

③例子1

--要求返回所有学生最高学分的分数。

函数定义:

create function demofun2(     num IN char )     return char AS     reScore number; BEGIN      select max(score) into reScore         from xsb;     return (reScore); END;

④调用函数

<变量名>:=<函数名>[(<实参1>,<实参2>,...)]

提示:变量名是用来接收函数返回值的。

SET SERVEROUTPUT ON; DECLARE      getScore number; BEGIN      getScore:=demofun2(1);     DBMS_OUTPUT.PUT_LINE('最高学分: '||to_char(getScore)); END;

注:其实我这里还没有使用传递的参数。

例子2:返回女生中的最高学分。

create function demofun3(     getsex IN char )     return number AS     reScore number; BEGIN      select max(score) into reScore         from xsb         where sex=getsex;     return (reScore); END; 

SET SERVEROUTPUT ON; DECLARE      getScore number; BEGIN      getScore:=demofun3('女');     DBMS_OUTPUT.PUT_LINE('最高学分: '||to_char(getScore)); END;

3.删除函数 (1)可视化方式

(2)命令方式

 DROP FUNCTION [<用户方案名>.] <函数名>

例如:drop function demofun3;

本文标签: 自定义函数用户oracle