使用Translate() 符合條件會回傳null:
ex :
    LENGTH(TRIM(TRANSLATE('123b', ' +-.0123456789',' ')));     return 1
    LENGTH(TRIM(TRANSLATE('a123b', ' +-.0123456789',' ')));     return 2
    LENGTH(TRIM(TRANSLATE('1256.54', ' +-.0123456789',' ')));     return null
    LENGTH(TRIM(TRANSLATE ('-56', ' +-.0123456789',' ')));     return null

或是自行建立一個 isNumeric() :
CREATE OR REPLACE FUNCTION isNumeric (str IN VARCHAR2)
    RETURN NUMBER
IS
    v_str VARCHAR2 (1000);
BEGIN
    IF str IS NULL
    THEN
       RETURN 0;
    ELSE
       v_str := TRANSLATE (str, '.0123456789', '.');

       IF v_str = '.' OR v_str = '+.' OR v_str = '-.' OR v_str IS NULL
       THEN
          RETURN 1;
       ELSE
          RETURN 0;
       END IF;
    END IF;
END isnumeric;

文章標籤
全站熱搜
創作者介紹
創作者 felixhuang 的頭像
felixhuang

菲力貓的程式設計

felixhuang 發表在 痞客邦 留言(0) 人氣(8,514)