oracle中怎么判断全为空格_Oracle怎么判断字符串为数字

想设置oracel表的一个约束条件需要判断某列值的一部分是否是纯数字,截取字串好办,mid就行,反而是后面判断是否为数字,oracle里没有专门的判断是否是数字的函数,不象powerbuilder有个isnumber(),可以直接用,不过oracle有其他方法,可以用REGEXP_REPLACE函数,这个函数支持正则表达式,具体到本例,可以用REGEXP_REPLACE(source_char,'[^0-9]',''),这里source_char是要判断的字符串,后面的[^0-9]是正则表达式,表示非数字,具体正则表达式的规则可以去网上找,这里不多说,最后的''表示空字符,注意单引号间没有空格,是用来替换前面字符串中非数字的部分的,这个参数可以省略,省略即表示所有匹配内容都被删除,所以在本例里省略也是可以的,即REGEXP_REPLACE(source_char,'[^0-9]'),反正我们要判断数字,非数字部分无论是用空字符还是删除都是允许的。

用REGEXP_REPLACE去除字符串里的非数字只是判断的第一步,后面要判断其是否为数字可以看替换掉非数字后剩下来的字串长度与原字串长度是否相等,如不等就说明原字串中包含非数字,相等说明原字串全部为数字字符,即length(source_char)=length(REGEXP_REPLACE(source_char,'[^0-9]')),将其放入约束条件,就可以约束指定列必须为全数字的字符。

bbd185b7bb4e68dcc5c8ae7316588f9b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值