-3
儘管我不能爲我的生活找出它是什麼,我相信它會是愚蠢的。在Pl Sql我遇到和錯誤遇到符號「CALCULATE_BONUS」
CREATE OR REPLACE FUNCTION Calculate_Bonus(p_salary IN NUMBER, p_startdate IN DATE)
RETURN NUMBER IS
v_years_service NUMBER;
BEGIN
v_years_service := TRUNC(Months_Between(SYSDATE, v_startdate) /12);
IF (v_years_service <2) THEN
p_bonus := v_salary * 0.02;
ELSE
IF (v_year_service >=2) THEN
p_bonus := v_salary * 0.04;
ELSE
p_bonus := v_salary * 0.05;
RETURN p_bonus;
END IF;
END Calculate_Bonus;
/
show err
語法錯誤,請檢查[文檔]中的if-then-else語法(http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm)。 – user272735
Streetrun - 請參閱我更新的最後一個問題的答案。還要注意,你在這個最新版本中的邏輯沒有意義:你檢查年限<2,然後年> = 2,然後是「其他」。當您檢查<2 or > = 2 *時,沒有其他*。最後,'RETURN p_bonus'只會在'ELSE'條件下執行。即使在修復邏輯之後,您想在* END IF之後返回*。 –
對不起Streetrun - 意思是留下一個鏈接到答案。這是[這裏](http://stackoverflow.com/a/19140864/2091410) –