文字列がすべて数字文字かどうかチェックするFunctionを作成しました。
Oracleの「IS_NUMERIC()関数」では、文字列が数値として扱えるかどうかをチェックできますが、文字列がすべて数字文字だけからできているかどうかチェックすることはできません。
そこで、文字列がすべて数字文字かどうかをチェックするFunctionを作成しました。
*ソースコード
CREATE OR REPLACE FUNCTION IS_NUMBERS(
P_STR IN VARCHAR
)
RETURN NUMBER
AS
BEGIN
IF LENGTH(TRIM(TRANSLATE(P_STR, '0123456789', ' '))) IS NULL THEN
RETURN 1;
END IF;
RETURN 0;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
/*
select IS_NUMBERS('12345') from dual;
select IS_NUMBERS('12345A') from dual;
select IS_NUMBERS('+12345') from dual;
*/