oracle中的存储函数,和系统内的函数类似,可以像调用系统函数一样调用存储函数。它与存储过程的唯一区别就是存储过程没有return返回值,存储函数可以与存储过程互换,存储函数可以在存储过程中调用。
存储函数的基本语法结构:
create [or replace] function 函数名[(参数名 in|out 参数类型)] return 返回值数据类型 is
声明变量部分;
begin
代码块;
return 结果变量;
end [函数名];
例如:查指定员工的年薪
创建存储函数:
create or replace function yearsal(eno in emp.empno%type) return number is
psal emp.sal%type;
pcomm emp.comm%type;
begin
select emp.sal into psal from emp where empno = eno;
return psal * 12 + nvl(pcomm, 0);
end yearsal;
调用存储函数:
declare
begin
dbms_output.put_line(yearsal(7369));
end;
像系统函数一样调用存储函数: select yearsal(7369) from dual;
结果:
员工年薪
----------
32400
以上就是存储函数的基本知识和应用。