一个函数
create or replace function get_tax_1(p_salary number)
return number as
tax_salary number;
V_NUMBER NUMBER;
begin
tax_salary := p_salary-FLOOR(p_salary);
IF tax_salary <= 0.3 THEN
V_NUMBER :=FLOOR(p_salary);
RETURN V_NUMBER;
end if;
IF tax_salary >= 0.4 AND tax_salary <= 0.7 THEN
SELECT (CEIL(p_salary) + FLOOR(p_salary)) / 2 INTO V_NUMBER FROM DUAL;
return V_NUMBER;
end if;
IF tax_salary >= 0.8 THEN
V_NUMBER :=CEIL(p_salary);
return V_NUMBER;
end if;
end get_tax_1;
报错信息如下
SQL> SELECT get_tax_1(3.2),get_tax_1(3.3),get_tax_1(3.4),get_tax_1(3.7),get_tax_1(3.9),get_tax_1(3.34) FROM dual;
SELECT get_tax_1(3.2),get_tax_1(3.3),get_tax_1(3.4),get_tax_1(3.7),get_tax_1(3.9),get_tax_1(3.34) FROM dual
ORA-06503: PL/SQL: 函数未返回值
ORA-06512: 在 "RITONG.GET_TAX_1", line 19