概述
函数一般用于计算和返回一个值,可以将经常需要的计算写成函数。函数的嗲用是表达式的一部分,而过程的调用时PL/SQL语句。
函数的创建和过程相似,也是在编译之后放在内存种供用户进行使用。只不过调用时函数要用表达式,而不像过程只需要过程名。另外函数必须要有一个返回值,而过程没有。
创建函数
CREATE [OR REPLACE] FUNCTION <函数名>(
参数1 [方式in|out] 数据类型,
参数2 [方式in|out] 数据类型,
参数n [方式in|out] 数据类型
) RETURN <表达式>
IS|AS
[可以在这里进行一些变量的声明]
BEGIN
函数体
END <函数名>
说明:
- CREATE OR REPLACE PROCEDURE:关键字用来创建或覆盖一个原有的存储过程,OR REPLACE就是覆盖的意思,如果已经有这个存储过程了那么就覆盖掉,没有就创建。
- RETURN: 在声明部分需要定义一个返回参数的类型。
- IS|AS:关键字
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;
在视图(VIEW)中只能用AS不能用IS;
在游标(CURSOR)中只能用IS不能用AS。
举例
create or replace function ON_CURSOR(enable_var TEST.IS_ENABLE%TYPE) return number is
FunctionResult number;
begin
ON_CURSOR2(enable_var,FunctionResult);
return(FunctionResult);
end ON_CURSOR;
函数的调用
在begin……end中可以直接使用过程名进行调用。
declare
i NUMBER;
begin
i:=ON_CURSOR(1);
end;
删除函数
DROP FUNCTION ON_CURSOR;