zoukankan      html  css  js  c++  java
  • oracle 判断是不是数值/数字

    1. 利用 to_number
    CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)
        RETURN NUMBER
    IS
        v_str FLOAT;
    BEGIN
        IF str IS NULL
        THEN
           RETURN 0;
        ELSE
           BEGIN
              SELECT TO_NUMBER (str)
                INTO v_str
                FROM DUAL;
           EXCEPTION
              WHEN INVALID_NUMBER
              THEN
                 RETURN 0;
           END;

           RETURN 1;
        END IF;
    END isnumeric;


    2. 利用 regexp_like
    CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)
        RETURN NUMBER
    IS
    BEGIN
        IF str IS NULL
        THEN
           RETURN 0;
        ELSE
           IF regexp_like (str, '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$')
           THEN
              RETURN 1;
           ELSE
              RETURN 0;
           END IF;
        END IF;
    END isnumeric;


    3. 利用 TRANSLATE
    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;

  • 相关阅读:
    李超线段树 [Heoi2013]Segment
    [置顶] 九月半集训总结
    [置顶] 我想学学
    图论+前缀和 任(duty)
    模拟 飞(fly)
    入坑 可持久化线段树——主席树
    一次爆炸的联考
    HASH+平衡树 [JSOI2008]火星人prefix
    乱搞+STL平衡树 序列
    数学+图论 建造游乐场
  • 原文地址:https://www.cnblogs.com/emanlee/p/3643780.html
Copyright © 2011-2022 走看看