CREATE OR REPLACE FUNCTION evaluation (a DATE,m Number)
RETURN VARCHAR2
IS
BEGIN
RETURN CASE
WHEN (floor(sysdate - a) < m) THEN 'Yes'
ELSE 'No'
END;
我做错了吗,在执行以下代码时,如果显示如下错误:
Error: ORA-01722: invalid number
发布的代码缺少一个END;
(第一个END
结束CASE
,因此需要第二个来结束该过程),但除此之外它正在工作,前提是您输入一个数字而不是无法转换为数字的字符串。
select evaluation(sysdate+3, 2) from dual;
YES
select evaluation(sysdate+3, '2') from dual;
YES
select evaluation(sysdate+3, 'a') from dual;
Error: ORA-01722: invalid number
包括另一端@last.....
CREATE OR REPLACE FUNCTION evaluation (a DATE,m Number)
RETURN VARCHAR2
IS
BEGIN
RETURN (CASE
WHEN (floor(sysdate - a) < m) THEN 'Yes'
ELSE 'No'
END);
END;