0
의 오라클에 함수를 작성했지만 컴파일 중에 오류를 발생시킵니다. PL/SQL : 문 무시 오류 (7,1) : PLS-00363 : 컴파일 나는 다음과 같은 오류를표현식 'I_VALUE'이 (가)
오류 (7,1)를 얻을 수있는 기능 동안
create or replace FUNCTION Get_Rounded_Value(i_Value NUMBER, i_Round_Type Varchar2, i_Round_Para NUMBER) RETURN number
DETERMINISTIC
IS
v_Final_Value NUMBER(22,4);
BEGIN
v_Final_Value := 0;
i_Value := NVL(i_Value,0);
if i_Round_Type = 'D' then
v_Final_Value := Trunc(i_Value,i_Round_Para);
elsif i_Round_Type = 'U' then
v_Final_Value := Ceil(i_Value * Power(10, i_Round_Para))/Power(10, i_Round_Para);
ELSIF i_Round_Type = 'R' then
v_Final_Value := Round(i_Value, i_Round_Para);
ELSIF i_Round_Type = 'A' then
v_Final_Value := Round(i_Value, i_Round_Para);
if abs(v_final_value - i_value) < 5 * power(10, (-1*i_Round_Para) - 1) then
v_Final_Value := v_Final_Value + 5 * power(10, (-1*i_Round_Para) - 1);
ELSIF abs(v_final_value - i_value) = 5 * power(10, (-1*i_Round_Para) - 1) then
v_Final_Value := v_Final_Value - 5 * power(10, (-1*i_Round_Para) - 1);
END IF;
ELSIF i_Round_Type = 'B' then
v_Final_Value := Ceil(i_Value * Power(10, i_Round_Para))/Power(10, i_Round_Para);
if abs(v_final_value - i_value) <= 5 * power(10, (-1*i_Round_Para) - 1) then
v_Final_Value := v_Final_Value - 5 * power(10, (-1*i_Round_Para) - 1);
END IF;
ELSIF i_Round_Type = 'C' then
v_Final_Value := Trunc(i_Value,i_Round_Para);
if abs(v_final_value - i_Value) >= 5 * power(10, (-1*i_Round_Para) - 1) then
v_Final_Value := v_Final_Value + 5 * power(10, (-1*i_Round_Para) - 1);
END IF;
end if;
Return NVL(v_Final_Value,0);
END;
표현 'I_VALUE '는 할당 목표로 사용할 수 없습니다.