为了账号安全,请及时绑定邮箱和手机立即绑定

oracle有没有判断一个字符串都是数字的函数呀?

oracle有没有判断一个字符串都是数字的函数呀?

慕少森 2019-02-22 19:15:37
oracle有没有判断一个字符串都是数字的函数呀
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

oracle本身没有,得自定义一个函数

12345678910create or replace function isNumber(p in varchar2)return numberisresult number;beginresult := to_number(p);return 1;exceptionwhen VALUE_ERROR then return 0;end;


调用

123select isNumber('abc123'from dual或者select isNumber('123'from dual


返回值为1,说明是数字,返回值是0,说明里边包含非数字的字符


查看完整回答
反对 回复 2019-03-26
?
九州编程

TA贡献1785条经验 获得超4个赞

用户oracle的正则函数regexp_instr就行了。

select regexp_instr('65','[1-9][0-9]?$') from dual ;


测试:

1234567891011121314151617sys@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表示非数字。



查看完整回答
反对 回复 2019-03-26
  • 2 回答
  • 0 关注
  • 1241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信