--=============================
--author:yeeXun
--date:发表于 @2010年12月25日 10:54:00
--address:Jau 17-304
--==============================
Oracle函数,分为系统函数和自定义函数,这里介绍自定义函数。
函数用于返回特定数据,可以返回一个或多个值。在一个函数中必须包含一个或多个RETURN 语句,函数调用是PL/SQL表达式的一部分,而过程调用可以是一个独立的PL/SQL语句。
创建自定义函数的语法如下:
Create [or replace ] function 函数名
[(参数[{in | out | in out}] 数据类型 ,...... )]
Return 返回类型
[authid {current_user | designer}]
{is | as}
Begin
函数体
End 函数名;
Or replace:如果要创建的函数存在,则先删除此函数,再重建此函数,也就是将撤销和重建这两个步骤合为一步操作。
In | out | in out:参数的模式。
authid curren_user :在调用时, oracle 使用调用该过程的用户权限域执行该过程,此时调用者必须有权限访问存储过程中所涉及到的所有数据库对象的权限。
authid designer :为默认选线, oracle 将使用过程所有者的权限来执行.
下面是一个例子:
SQL> create function leap_or_common_year
2 (year in integer)
3 return varchar2 is
4 retval varchar2(30);
5 begin
6 if (year mod 400)=0 or ( (year mod 100)!=0 and (year mod 4)=0 ) then
7 retval:=year||' is a leap year;';
8 else
9 retval:=year||' is a common year;';
10 end if;
11 return retval;
12 end leap_or_common_year;
接下来我们调用这个函数:
SQL> select leap_or_common_year(2010) from dual;
LEAP_OR_COMMON_YEAR(2010)
--------------------------------------------------------------------------------
2010 is a common year;
SQL> select leap_or_common_year(2012) from dual;
LEAP_OR_COMMON_YEAR(2012)
--------------------------------------------------------------------------------
2012 is a leap year;
函数的删除:
Drop function 函数名;
例如:
SQL> drop function leap_or_common_year;
Function dropped
--the end--