check if “it's a number” function in Oracle

后端 未结 16 2782
一整个雨季
一整个雨季 2020-11-28 10:31

I\'m trying to check if a value from a column in an oracle (10g) query is a number in order to compare it. Something like:

select case when ( is_number(myTab         


        
16条回答
  •  暖寄归人
    2020-11-28 10:51

    CREATE OR REPLACE FUNCTION is_number(N IN VARCHAR2) RETURN NUMBER IS
      BEGIN
        RETURN CASE regexp_like(N,'^[\+\-]?[0-9]*\.?[0-9]+$') WHEN TRUE THEN 1 ELSE 0 END;
    END is_number;
    

    Please note that it won't consider 45e4 as a number, But you can always change regex to accomplish the opposite.

提交回复
热议问题