存储函数
定义:函数唯一命名的存储程序,可带参数,并返回一计算值
函数和过程的结构类似,但必须有一个Return字句,用于返回函数值。
语法:
CREATE [OR REPLACE] FUNCTION 函数名(参数列表)
RETURN 函数值类型
AS
PLSQL子程序体;
Eg: 查询某个员工的年收入
--eno in number 声明eno为输入的参数 类型为number
create or replace FUNCTION queryEmpIncome(eno in number)
-- 声明返回值的类型
RETURN NUMBER
AS
--定义变量保存员工的薪水和奖金
pasl emp.sal%type;
pcomm emp.comm%type;
begin
--得到员工的月薪和奖金
select sal,comm into pasl,pcomm from emp where empno = eno;
--直接返回年收入
return pasl*12 + nvl(pcomm,0);
end;
in和out 参数(续)
过程和函数都可以通过out指定一个或多个输出参数。我们可以利用out 参数,
在过程和函数中实现返回多个值
1)存储过程和存储函数都可以有out参数
2)存储过程和存储函数都可以有多个out参数
3)存储过程可以通过out参数来实现返回值
使用场景:当有一个返回值类型的时候,使用存储函数
当有多个返回值的时候,使用存储函数。(习惯)