方法一
返回值为NULL的表示字符串,返回值大于等于1的表示有非数字字符
select lengthb(ltrim( '1248346 ', '0123456789 ')) from dual;
或
select lengthb(rtrim( '1248346a ', '0123456789 ')) from dual;
方法二
返回值为NULL的表示字符串,返回值大于等于1的表示有非数字字符
select translate( '123 ', '0123456789 ', ' ') from dual
方法三
如果返回为空指,则全部为数字,反之则含有非数字字符
select lengthb(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace( '0123456789a ', '0 '), '1 '), '2 '), '3 '), '4 '), '5 '), '6 '), '7 '), '8 '), '9 ')) ifnum from dual
方法四
如果是Oracle 10g,可以用正则表达式实现
如果返回为0,则表示都是数字,反之,表示有非数字存在
SELECT count( 'a123 ') FROM dual WHERE REGEXP_LIKE( 'a123 ', '[^[:digit:]] ')
========================
不建议使用方法三
相关文章
- oracle正则判断纯数字,oracle 判断字段是否为是数字 regexp_like用法 正则表达式
- oracle利用正则表达式判断字符串只包含数字
- Oracle中判断字段是否为数字
- Oracle sql判断一个字段是否全数字 或含有中文
- Oracle 判断是否为数字,包括小数点
- oracle判断全部数字,在Oracle中,如何判断一个字符串是否全为数字?
- oracle函数-判断一个字段是否纯数字
- oracle如何判断字符串是数字类型,oracle中如何判断一个字符串是否数字
- oracle中如何判断字符串是否全为数字,以及从任意字符串中提取数字
- Oracle语句判断字符串是否为数字及translate函数解析