2014-03-13 51 views
0

我試圖創建一個函數來讀取列的值,即「H」,「C」或「N」,並返回「Hot」,「Cold」或「無」,但case語句我寫保持casuing此錯誤:試圖在APEX函數中使用CASE

Error at line 5: PL/SQL: Statement ignored

這裏是我的代碼,我不知道我在做什麼錯誤,而錯誤通常是模糊的。

CREATE OR REPLACE FUNCTION refreshment(
code IN string) 
RETURN STRING IS 
BEGIN 
RETURN(
CASE code 
WHEN "H" THEN "Hot" 
WHEN "C" THEN "Cold" 
WHEN "N" THEN "None" 
END 
); 
END; 

回答

1

首先,string不是有效的日期類型。您需要改爲varchar2。其次,字符串由單引號分隔,而不是雙引號。

這樣看來,因此,要

CREATE OR REPLACE FUNCTION refreshment(p_code IN VARCHAR2) 
    RETURN VARCHAR2 
IS 
BEGIN 
    RETURN CASE p_code 
      WHEN 'H' THEN 'Hot' 
      WHEN 'C' THEN 'Cold' 
      WHEN 'N' THEN 'None' 
     END; 
END; 
+0

偉大的作品!謝謝! – sh3rifme