病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« 取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣支付宝、微信转账错误怎么处理 »

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]')),将其放入约束条件,就可以约束指定列必须为全数字的字符。

Oracle


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2039.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.

闽公网安备 35010202000133号