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

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


慕少森
浏览 1240回答 2
2回答

青春有我

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,说明里边包含非数字的字符

九州编程

用户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表示非数字。
打开App,查看更多内容
随时随地看视频慕课网APP