Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 判断是否为数字型(金额型)

在sql server,校验数据是否为数字型比较容易,有提供的方法可以使用:ISNUMERIC当是数字型,方法返回值为1;否则返回值为0例:select * from tablename where isnumeric(data) = 1在Oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:方法一,用正则的方法:使用 regexp_like例:select * from tablename whereregexp_like(trim(data),"^([-]?[0-9]+.[0-9]+)$|^([-]?[0-9])+$|^([-]?[0-9]{1}.[0-9]+E[-]?[0-9])+$")这个正则分三部分:1、^([-]?[0-9]+.[0-9]+)$浮点型,包括带小数点的情况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但上面这个还不太完善,没有考虑负数,科学计数法表示,数据本身为空,或对“.”的验证。所以使用方法二的时候要注意,或修改之(写得比较完善有点麻烦,不如写个方法了)。Oracle及PostgreSQL递归查询Oracle更换表空间 blob字段带来的问题相关资讯      Oracle数据库基础教程  Oracle判断数字  Oracle判断 
  • 在Oracle数据库中插入含有&符号的  (03/06/2013 09:20:14)
  • Oracle 执行计划更改导致数据加工  (02/13/2013 14:45:04)
  • 判断Oracle Sequence是否存在  (02/13/2013 14:32:26)
  • Oracle数据库中无法对数据表进行  (02/26/2013 14:24:58)
  • Oracle 在同一台主机上建立用户管  (02/13/2013 14:40:58)
  • Oracle em 无法启动,报not found错  (02/13/2013 14:29:48)
本文评论 查看全部评论 (0)
表情: 姓名: 字数