oracle判断一个字符是否是数字
生活随笔
收集整理的這篇文章主要介紹了
oracle判断一个字符是否是数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一
返回值為NULL的表示字符串,返回值大于等于1的表示有非數字字符
select ? lengthb(ltrim( '1248346 ', '0123456789 ')) ? from ? dual;
或
select ? lengthb(rtrim( '1248346a ', '0123456789 ')) ? from ? dual;
方法二
返回值為NULL的表示字符串,返回值大于等于1的表示有非數字字符
select ? translate( '123 ', '0123456789 ', ' ') ? from ? dual
方法三
如果返回為空指,則全部為數字,反之則含有非數字字符
select ? lengthb(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace( '0123456789a ', '0 '), '1 '), '2 '), '3 '), '4 '), '5 '), '6 '), '7 '), '8 '), '9 ')) ? ifnum ? from ? dual
方法四
如果是Oracle ? 10g,可以用正則表達式實現
如果返回為0,則表示都是數字,反之,表示有非數字存在
SELECT ? count( 'a123 ') ? FROM ? dual ? WHERE ? REGEXP_LIKE( 'a123 ', ? '[^[:digit:]] ')
========================
不建議使用方法三
返回值為NULL的表示字符串,返回值大于等于1的表示有非數字字符
select ? lengthb(ltrim( '1248346 ', '0123456789 ')) ? from ? dual;
或
select ? lengthb(rtrim( '1248346a ', '0123456789 ')) ? from ? dual;
方法二
返回值為NULL的表示字符串,返回值大于等于1的表示有非數字字符
select ? translate( '123 ', '0123456789 ', ' ') ? from ? dual
方法三
如果返回為空指,則全部為數字,反之則含有非數字字符
select ? lengthb(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace( '0123456789a ', '0 '), '1 '), '2 '), '3 '), '4 '), '5 '), '6 '), '7 '), '8 '), '9 ')) ? ifnum ? from ? dual
方法四
如果是Oracle ? 10g,可以用正則表達式實現
如果返回為0,則表示都是數字,反之,表示有非數字存在
SELECT ? count( 'a123 ') ? FROM ? dual ? WHERE ? REGEXP_LIKE( 'a123 ', ? '[^[:digit:]] ')
========================
不建議使用方法三
總結
以上是生活随笔為你收集整理的oracle判断一个字符是否是数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js生成验证码并验证 .
- 下一篇: ibatis解决sql注入问题 .