方法一
返回值为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:]]')========================
不建议使用方法三
返回值为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:]]')========================
不建议使用方法三
解决方案 »
- sql语句文本时间之间的转换
- SQL远程连接ORACLE的视图,查询出错!求解!
- 求bbs数据库数据库设计 用户表、发帖表、回帖表即可 请高手指点
- Oracle多表查询
- 求助工具:oracle查询连接
- 如何对ORACLE里的CLOB字段进行模糊查询?例如like关键字可以用吗?
- 这中情况的查询语句该怎么写啊
- 为什么我从SQL server导入到Oracle中的表在视图中可以查到,但是却不能查询呢?
- 把从8.0.5的 *.dmp文件导入9i的数据库中,总是出错,哪个老兄有解决办法?
- 求助某字段部分文言整体删除的sql如何写
- 请教各位高手!!!很急!!!!!!!!!!!!!!!!!!!
- 请教一个关于oracle pro*c的问题!谢谢!
SQL> /T
-
SQL> edit
已写入文件 afiedt.buf 1* select translate('12sdf7896578','x1234567890','x') from dual
SQL> /TRA
---
sdf返回为空行表示全部为数字,返回不是空行,肯定有字符包含在里面