目录

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中用户自定义函数(五)