- 定义
存储函数举例
- Eg:查询某个员工的年收入
- 调用存储函数 ```plsql create or replace function queryempincome(eno in number) return number as —定义变量保存薪水和变量
psal emp.sal%type;
pcomm emp.comm%type;
begin —得到该员工的月薪和奖金 select sal,comm into psal,pcomm from emp where empno=eno;
—直接返回年收入 —判断奖金是否为空,如果为空会得不到结果 return psal*12+nvl(pcomm,0); end;
<a name="ioUaO"></a>
## in和out参数
- 一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值;而存储过程没有返回值。
- 存储过程和存储函数都可以通过out指定一个或多个输出参数。我们可以利用out参数,在过程和函数中实现多个返回值。
1. 存储过程和存储函数都可以由out参数
1. 存储过程和存储函数都可以有多个out参数
1. 存储过程可以通过out参数来实现返回值
- **什么时候用存储过程/存储函数?如果只有一个返回值用存储函数;否则就用存储过程**
```plsql
--out参数:查询某个员工姓名 月薪和职位
create or replace procedure queryempinfo(eno in number,
pename out varchar2,
psal out number ,
pjob out VARCHAR2)
as
begin
--得到该员工的姓名 月薪和职位
select ename,sal,job into pename,psal,pjob from emp where empno=eno;
end;
/
