oracle中函数
一、oracle中函数
在oracle中函数用于处理逻辑关系,完成一个或n个较为复杂的逻辑功能。
例如:计算工资应纳所得税,这是逻辑
1.声明自定义函数,实现2个数找最大值,并返回最大值
函数声明语法:
create function 自定义函数名(
参数名1 [in/out/in out] 参数类型,
...
参数名2 [in/out/in out] 参数类型
)
return 返回值类型
as/is /*as 与 is任选一个,表示函数体的开始,函数体书写与变量声明、编辑等雷同,区别在于没有declare*/
...声明区...
begin
... 编辑区...
return 返回值;
end;
答:自定义函数求2个数最大值参考代码如下
drop function fn_numberMax;
create function fn_numberMax(
v_a number,
v_b number
)
return number
as
v_max number;
begin
if v_a>=v_b then
v_max:=v_a;
else
v_max:=v_b;
end if;
return v_max;
end;
/
调用求最大值函数
select upper('abc') from dual;
select fn_numberMax(10,2) from dual;
2.根据工资计算个人所得税
drop function fn_money;
create function fn_money(
v_sal emp.sal%type
)
return number
as
v_m number;
begin
if v_sal <= 800 then
v_m:=0;
elsif v_sal<=1500 then
v_m:=(v_sal-800)*0.03;
elsif v_sal<=3000 then
v_m:=(v_sal-1500)*0.25+21;
else
v_m:=(v_sal-3000)*0.3+21+375;
end if;
return v_m;
end;
显示每个员工工号、姓名、工资、个税
select empNo,eName,sal,fn_money(sal) money from emp;