-3
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
4

2 回答 2

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
于 2013-03-25T09:32:28.647 回答
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;
于 2013-03-25T11:30:19.503 回答