oracle有沒有判斷一個字符串都是數(shù)字的函數(shù)呀
2 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊
oracle本身沒有,得自定義一個函數(shù)
12345678910 | create or replace function isNumber(p in varchar2) return number is result number; begin result := to_number(p); return 1; exception when VALUE_ERROR then return 0; end ; |
調(diào)用
123 | select isNumber( 'abc123' ) from dual 或者 select isNumber( '123' ) from dual |
返回值為1,說明是數(shù)字,返回值是0,說明里邊包含非數(shù)字的字符

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個贊
用戶oracle的正則函數(shù)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表示為數(shù)字,等于0表示非數(shù)字。
- 2 回答
- 0 關(guān)注
- 1293 瀏覽
添加回答
舉報(bào)
0/150
提交
取消