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
答案 0 :(得分:4)
发布的代码缺少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
答案 1 :(得分:0)
包括另一个结尾@ 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;