我试图创建一个函数,该函数将读取列的值,即"H","C"或"N"并返回"热","冷"或"无",但我所写的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;
首先,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;