错误:ORA-01722:无效的数字

时间:2013-03-25 09:23:42

标签: sql oracle

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

2 个答案:

答案 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;