Oracle 函数
函数与过程非常类似,它也是一种存储在数据库中的命名程序块,并且函数也可以接受零个或多个输入参数。函数与过程之间的主要区别在于,函数必须有返回值,并且可以作为一个表达式的一部分,函数不能作为一个完整的语句使用。函数返回值的数据类型在创建函数时定义,定义函数的基本语法如下:
create [or replace] function function_name (parameter [,parameter])
returne data_type is
[local declarations]
begin
execute statements
[exception
exception handlers]
end [function_name]
存储过程和函数之间的主要区别有两处:第一处是在函数头部必须使用RETURN子句,指定函数返回的数据类型;另一处是在函数体内,在函数体内的任何地方都可以使用RETURN语句返回结果值,返回值的数据类型必须与函数头中声明的相同。
例如,下面创建了一个用于求平均数的函数:
SQL> create or replace function average(num1 number,num2 number)
2 return number is
oracle trunc函数的使用方法3 res number;
4 begin
5 res:=(num1+num2)/2;
6 return(res);
7 end average;
8 /
函数已创建。
调用函数与过程不相同,调用函数时则必须使用一个变量来保存返回的结果值,这样函数就组成了表达式的一部分。这也意味着函数不能像过程那样独立地调用,它只能作为表达式的一部分来调用。例如,在下面的匿名程序块中调用函数A VERAGE,以获取两个数的平均值:
SQL> set serveroutput on
SQL> declare
2 avg_number number;
3 begin
4 avg_number:=average(45,59);
5 dbms_output.put_line(avg_number);
6 end;
7 /
52
PL/SQL 过程已成功完成。
理论上,在函数中也可以使用OUT类型的参数,但是如果在函数中同时使用RETURN 返回值和OUT参数很容易产生混淆。所以,在创建函数时应该使用RETURN语句返回一个单独的值,而将OUT参数用于过程中。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论