create or replace function income_level(name_in in varchar2)
--函数返回值类型
return varchar2 is
--变量声明
monthly_sal number(7, 2); --每月薪水
v_level varchar2(20); --函数返回值,薪水级别
cursor c1 is select sal from emp where ename = name_in; --游标c1
begin
--执行部分
open c1; --打开游标
fetch c1 into monthly_sal; --给monthly_sal赋值
--(注意,游标返回单行数据,可以直接赋值,若返回多行数据,则需要循环取出)
close c1; --关闭游标
if monthly_sal <= 4000 then
v_level := 'Low Income';
elsif monthly_sal > 4000 and monthly_sal <= 7000 then
v_level := 'Avg Income';
elsif monthly_sal > 7000 and monthly_sal < 15000 then
v_level := 'Moderate Income';
else
v_level := 'High Income';
end if; --结束if语句
return v_level;
end;
--函数返回值类型
return varchar2 is
--变量声明
monthly_sal number(7, 2); --每月薪水
v_level varchar2(20); --函数返回值,薪水级别
cursor c1 is select sal from emp where ename = name_in; --游标c1
begin
--执行部分
open c1; --打开游标
fetch c1 into monthly_sal; --给monthly_sal赋值
--(注意,游标返回单行数据,可以直接赋值,若返回多行数据,则需要循环取出)
close c1; --关闭游标
if monthly_sal <= 4000 then
v_level := 'Low Income';
elsif monthly_sal > 4000 and monthly_sal <= 7000 then
v_level := 'Avg Income';
elsif monthly_sal > 7000 and monthly_sal < 15000 then
v_level := 'Moderate Income';
else
v_level := 'High Income';
end if; --结束if语句
return v_level;
end;