您的位置:首页 > 数据库 > Oracle

Oracle将字符串转换为数字,并替换特殊字符

2013-06-24 10:40 483 查看
Oracle自带有to_number函数,但需要说明的是这个函数只能转换字符串格式是正确数字的情况,

也就是一旦字符串为空,或者有特殊字符,或者有空格等等,都会抛错,以下提供一种方式成功解决以上问题:

TO_NUMBER(decode(decode(lower(nvl(replace(translate(strTargetField, '$%', ' '),' ',''),0)),upper(nvl(replace(translate(strTargetField, '$%', ' '),' ',''),0)),1,0),

1,nvl(replace(translate(strTargetField, '$%', ' '),' ',''),0),0)) numResult

需要指出的是,在nvl函数里还用了translate函数来替换指定的特殊字符,因为我的这个例子中的字段有可能包含有百分号获美元符号,对于这类字符我也认为是正确的值,所以需要先过滤掉这些符号然后再对剩下的部分进行数字转换。

原文地址:http://www.linuxidc.com/Linux/2011-12/48596.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Oracle to_number
相关文章推荐