数値かどうかチェックするFunctionです。
サンプル
例)引数が数値文字列であれば1を、異なれば0を返す
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE OR REPLACE FUNCTION FNC_IS_NUMBER( a IN VARCHAR2 ) RETURN NUMBER IS tmp NUMBER; BEGIN IF a IS NULL THEN RETURN 0; ELSE tmp := TO_NUMBER(a); RETURN 1; END IF; EXCEPTION WHEN OTHERS THEN RETURN 0; END; / |
- 実行例「数値文字列の場合」
- SELECT FNC_IS_NUMBER('12345') FROM dual; FNC_IS_NUMBER('12345') ----------------------- 1
- 実行例「文字列の場合」
- SELECT FNC_IS_NUMBER('abc') FROM dual; FNC_IS_NUMBER('abc') ----------------------- 0
解説
- NULLの場合は数値でないと判定します。