oracle中的函数
oracle中的函数是子程序和程序包中的一部分,函数与过程相似,是数据库中存储的已命名PL/SQL程序块。函数的主要特征是它必须返回一个值。创建函数时通过RETURN子句指定函数返回值数据类型。在函数的任何地方,都可以通过“RETURN 表达式”语句从函数返回,这里的“表达式”的值与函数定义中指定的返回数据类型一致。
函数的创建语法:
CREATE [OR REPLACE] FUNCTION 函数名[(过程参数列表)] RETURN 数据类型
{IS|AS}
--声明部分
BEGIN
--可执行部分
[EXCEPTION]
--异常处理部分
END [函数名];
函数和过程是非常相似的,不同在于函数必须返回一个值,在return后面写明数据类型。例如:
create or replace function get_weight(agepoint int,names varchar default 'smith') return number
is
weight number;
begin
select age*agepoint into weight from orcltest where name=names;
return weight;
exception
when no_data_found then
dbms_output.put_line('没有查找到数据');
end get_weight;
以上为创建了一个函数,函数名为get_weight,有两个参数,第二个参数有默认值。让后做处理,返回值是weight。
数据表:
下面是测试函数的代码:
SQL> select get_weight(1) from dual;
GET_WEIGHT(1)
-------------
23
SQL> select get_weight(2,'jerry') from dual;
GET_WEIGHT(2,'JERRY')
---------------------
38
函数常常是作为表达式的一部份调用。和过程相比,函数必须在声明中包含return语句;必须返回一个值;必须包含至少一个return语句,作为结束。