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
ため、手順を終了するには 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
別の 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;