oracle怎么判断数字 oracle查询不是数字-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

oracle怎么判断数字 oracle查询不是数字

oracle 中怎么判断是否为数字?

CREATE OR REPLACE Function Isnumeric(Str In Varchar2)\x0d\x0a\x0d\x0a Return Number\x0d\x0a\x0d\x0a Is\x0d\x0a\x0d\x0aBegin\x0d\x0a\x0d\x0a If Str Is Null\x0d\x0a \x0d\x0a Then\x0d\x0a \x0d\x0a Return 0;\x0d\x0a \x0d\x0a Else\x0d\x0a \x0d\x0a If Regexp_Like(Str, '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$') --数值\x0d\x0a \x0d\x0a /*(str, '^[0-9]*[1-9][0-9]*$') --正整数*/\x0d\x0a \x0d\x0a Then\x0d\x0a \x0d\x0a Return 1;\x0d\x0a \x0d\x0a Else\x0d\x0a \x0d\x0a Return 0;\x0d\x0a \x0d\x0a End If;\x0d\x0a \x0d\x0a End If;\x0d\x0a\x0d\x0aEnd Isnumeric;\x0d\x0a\x0d\x0a创建上面的函数,然后判断返回值是否是1,1则表示是数值,0则表示非数值

创新互联公司是专业的上高网站建设公司,上高接单;提供成都做网站、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行上高网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

oracle sql判断是否数字?

可以用oracle自带的正则表达式函数REGEXP_REPLACE把数字全部取出来,然后计算数字的长度是否等于这个字段的长度,如果等于的话说明这个值全部是数字,如果不等于的话说明值里面包含非数字,测试语句如下:

SELECT(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL;---取出值里面的全部数字

SELECT LENGTH('LSS12345'),LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL; ---查询出字段的长度和字段内数字的长度

SELECT* FROM DUAL  WHERE LENGTH('LSS12345') = LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) ;  ----查询这个字段所有的纯数字列

oracle判断字符串是否为数字

1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')

2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常

3、调用translate函数,剔除所有[0-9]数字后,看是否为空串

4、调用正则表达式,进行模式匹配(10g版本新加入的功能)

--通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')

DECLARE

str             VARCHAR2(10) := '123a';

val             NUMERIC(10);

i               int;

k               int;

flag            BOOLEAN;

BEGIN

flag := TRUE;

for i in 1..10 loop   --新密码是否6位数字

k := ascii(substr(str, i, 1));

if k  48 or k  57 THEN

flag := FALSE;

end if;

end LOOP;

IF flag = true THEN

dbms_output.put_line(str || '是[0-9]的数字序列');

ELSE

dbms_output.put_line(str || '不是[0-9]的数字序列');

END IF;

END;

-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常

DECLARE

str    VARCHAR2(10) := '123';

val    NUMERIC(10);

BEGIN

val := CAST(str AS NUMERIC);

dbms_output.put_line(str || '是[0-9]的数字序列');

EXCEPTION

WHEN value_error THEN -- 字符串转实数错误

--dbms_output.put_line(SQLCODE || ', ' || SQLERRM);

dbms_output.put_line(str || '不是[0-9]的数字序列');

END;

--调用translate函数,剔除所有[0-9]数字后,看是否为空串

DECLARE

str VARCHAR2(10) := '123abc';

BEGIN

IF replace(translate(str, '0123456789', '0'), '0', '') IS NULL THEN

dbms_output.put_line(str || '是[0-9]的数字序列');

ELSE

dbms_output.put_line(str || '不是[0-9]的数字序列');

END IF;

END;

--调用正则表达式,进行模式匹配(10g版本新加入的功能)

SELECT *

FROM dual

WHERE regexp_like('1234', '^[[:digit:]]+$');

--从任意字符串中提取数字串(调用2次translate函数)。

--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;

--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除

DECLARE

--str    VARCHAR2(100) := ' 护照01浙江2     3昆 山4苏 3';

str    VARCHAR2(100) := ' 护照浙江     昆 山苏 4';

ret    VARCHAR2(10);

BEGIN

ret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, '1234567890', '          ')), ' '));

dbms_output.put_line(ret);

END;


文章名称:oracle怎么判断数字 oracle查询不是数字
分享路径:http://kswsj.cn/article/hgscdd.html

其他资讯