中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 中 isnumeric 的三種實現

發布時間:2020-03-09 22:36:16 來源:網絡 閱讀:402 作者:沙漏半杯 欄目:編程語言

使用過 asp 的應該對 isnumeric 函數不會陌生,這是一個常用的判斷入參是否為數字的函數。在 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;?


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南城县| 淮南市| 保康县| 高平市| 涟水县| 旬邑县| 垦利县| 深泽县| 盐边县| 镇赉县| 五常市| 周口市| 迭部县| 和龙市| 高要市| 宜良县| 巍山| 慈溪市| 潜江市| 曲水县| 景宁| 娱乐| 昌吉市| 凤庆县| 英德市| 张家界市| 锦屏县| 嘉鱼县| 高密市| 乐清市| 临城县| 屏山县| 颍上县| 安图县| 全州县| 屏东县| 钦州市| 裕民县| 广德县| 望城县| 开远市|