在oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:
在sql server,校验数据是否为数字型比较容易,有提供的方法可以使用:
ISNUMERIC
当是数字型,方法返回值为1;否则返回值为0
例:
select * from tablename where isnumeric(data) = 1
在Oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:
方法一,用正则的方法:
使用 regexp_like
例:
select * from tablename where
regexp_like(trim(data),'^([\-]?[0-9]+\.[0-9]+)$|^([\-]?[0-9])+$|^([\-]?[0-9]{1}\.[0-9]+E[\-]?[0-9])+$')
这个正则分三部分:
1、^([\-]?[0-9]+\.[0-9]+)$
浮点型,包括带小数点的情况
诚客在线考试是由南宁诚客网络科技有限公司开发的一款手机移动端的答题网站软件,它应用广泛适合各种学校、培训班、教育机构、公司企业、事业单位、各种社会团体、银行证券等用于学生学习刷题、员工内部培训,学员考核、员工对公司制度政策的学习……可使用的题型有:单选题、多选题、判断题支持文字,图片,音频,视频、数学公式。可以设置考试时间,答题时间,考试次数,是否需要补考,是否可以看到自己成绩。练习模式,支持学生
0
2、^([\-]?[0-9])+$
整数型
3、^([\-]?[0-9]{1}\.[0-9]+E[\-]?[0-9])+$
科学计数法表示的数字
以上三部分均包括了负数的情况
注:regexp_like适用于oracle 10g及其之后的版本,之前的不适用。
方法二,用正则的方法:
使用translate方法
例:
select data,decode(trim(translate(trim(cdata),'0123456789.',' ')),'','is number','not number')
from tablename
但上面这个还不太完善,没有考虑负数,科学计数法表示,数据本身为空,,或对“.”的验证。
所以使用方法二的时候要注意,或修改之(写得比较完善有点麻烦,不如写个方法了)。

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号