-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ため、手順を終了するには 2 番目のコードが必要です) が、数値に変換できない文字列ではなく数値を入力すれば、機能しています。

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

別の end @ 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 に答える