oracle有没有判断一个字符串都是数字的函数呀
2 回答
青春有我
TA贡献1784条经验 获得超8个赞
oracle本身没有,得自定义一个函数
| 12345678910 | create or replace function isNumber(p in varchar2)return numberisresult number;beginresult := to_number(p);return 1;exceptionwhen VALUE_ERROR then return 0;end; |
调用
| 123 | select isNumber('abc123') from dual或者select isNumber('123') from dual |
返回值为1,说明是数字,返回值是0,说明里边包含非数字的字符
九州编程
TA贡献1785条经验 获得超4个赞
用户oracle的正则函数regexp_instr就行了。
select regexp_instr('65','[1-9][0-9]?$') from dual ;
测试:
| 1234567891011121314151617 | sys@STARTREK> select regexp_instr('65','[1-9][0-9]?$') from dual ; REGEXP_INSTR('65','[1-9][0-9]?$')--------------------------------- 1 sys@STARTREK> select regexp_instr('0','[1-9][0-9]?$') from dual ; REGEXP_INSTR('0','[1-9][0-9]?$')-------------------------------- 0 sys@STARTREK> select regexp_instr('1d','[1-9][0-9]?$') from dual ; REGEXP_INSTR('1D','[1-9][0-9]?$')--------------------------------- 0 |
大于0表示为数字,等于0表示非数字。
- 2 回答
- 0 关注
- 1314 浏览
添加回答
举报
0/150
提交
取消
