"hljs powershell" > --1、利用 to_number
CREATE OR REPLACE "hljs-keyword" > FUNCTION isnumeric(str "hljs-keyword" > IN VARCHAR2)
"hljs-keyword" > RETURN NUMBER
IS v_str FLOAT ; "hljs-keyword" > BEGIN
"hljs-keyword" >IF str IS NULL
THEN "hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > ELSE
"hljs-keyword" > BEGIN
SELECT TO_NUMBER (str) INTO v_str FROM DUAL; EXCEPTION WHEN INVALID_NUMBER THEN "hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > END ;
"hljs-keyword" > RETURN "hljs-number" >1;
"hljs-keyword" > END "hljs-keyword" >IF;
"hljs-keyword" > END isnumeric;
/ --2、利用 regexp_like CREATE OR REPLACE "hljs-keyword" > FUNCTION isnumeric (str "hljs-keyword" > IN VARCHAR2)
"hljs-keyword" > RETURN NUMBER
IS "hljs-keyword" > BEGIN
"hljs-keyword" >IF str IS NULL
THEN "hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > ELSE
"hljs-keyword" >IF regexp_like (str, "hljs-string" > '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$' )
THEN "hljs-keyword" > RETURN "hljs-number" >1;
"hljs-keyword" > ELSE
"hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > END "hljs-keyword" >IF;
"hljs-keyword" > END "hljs-keyword" >IF;
"hljs-keyword" > END isnumeric;
/ --3、利用 translate CREATE OR REPLACE "hljs-keyword" > FUNCTION isnumeric (str "hljs-keyword" > IN VARCHAR2)
"hljs-keyword" > RETURN NUMBER
IS v_str VARCHAR2 ("hljs-number" >1000); "hljs-keyword" > BEGIN
"hljs-keyword" >IF str IS NULL
THEN "hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > ELSE
v_str := translate(str, "hljs-string" > '.0123456789' , "hljs-string" > '.' ); "hljs-keyword" >IF v_str = "hljs-string" > '.' OR v_str = "hljs-string" > '+.' OR v_str = "hljs-string" > '-.' OR v_str IS NULL
THEN "hljs-keyword" > RETURN "hljs-number" >1;
"hljs-keyword" > ELSE
"hljs-keyword" > RETURN "hljs-number" >0;
"hljs-keyword" > END "hljs-keyword" >IF;
"hljs-keyword" > END "hljs-keyword" >IF;
"hljs-keyword" > END isnumeric;
/ |