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 關注
- 1299 瀏覽
添加回答
舉報
0/150
提交
取消
