create or replace function emp_sql_level_fun
(vempno IN varchar2)
RETURN varchar2
as
monthly_value number(6);
ILevel varchar2(20);
cursor
c1 is
select salary
from employees
where EMPLOYEE_NUMBER=vempno;
Begin
open c1;
fetch c1 into monthly_value;
close c1;
IF monthly_value <= 4000 THEN
ILevel := 'Low Income';
ELSIF monthly_value > 4000 and monthly_value <= 7000 THEN
ILevel := 'Avg Income';
ELSIF monthly_value > 7000 and monthly_value <= 15000 THEN
ILevel := 'Moderate Income';
ELSE
ILevel := 'High Income';
END IF;
Return lLevel;
End;
/: 创建的函数带有编译错误。
请那位大侠指点这些脚本那个地方的的参数有问题,写这样的函数应该要注意那些问题.为谢!
(vempno IN varchar2)
RETURN varchar2
as
monthly_value number(6);
ILevel varchar2(20);
cursor
c1 is
select salary
from employees
where EMPLOYEE_NUMBER=vempno;
Begin
open c1;
fetch c1 into monthly_value;
close c1;
IF monthly_value <= 4000 THEN
ILevel := 'Low Income';
ELSIF monthly_value > 4000 and monthly_value <= 7000 THEN
ILevel := 'Avg Income';
ELSIF monthly_value > 7000 and monthly_value <= 15000 THEN
ILevel := 'Moderate Income';
ELSE
ILevel := 'High Income';
END IF;
Return lLevel;
End;
/: 创建的函数带有编译错误。
请那位大侠指点这些脚本那个地方的的参数有问题,写这样的函数应该要注意那些问题.为谢!
你只有一条纪录时,直接用select into就行了
目前你这游标因为判断都是在循环体外,实际上monthly_value 最终只有一个值