oracle数据中特殊字符处理
2014-10-23 10:06
423 查看
最近数据处理时经常发现有数字中含有大量字符,执行过程报“ORA-01722: invalid number”异常,整理了一下,可以有以下几种方法去除:
1、replace 用法简单,写法较复杂,只能处理已知字符
2、translate 用法简单,写法简单,只能处理已知字符,字符串、待查找字符,替换字符,均不能为null,否则返回null,字符串按查找顺序替换,若无则去除
3、regexp_replace 正则表达式 增强型replace 参数多,可根据正则式处理所有字符
注:这些是以前所写,现转移到OSC,博客原文:http://www.cnblogs.com/godsweet/p/3274947.html
1、replace 用法简单,写法较复杂,只能处理已知字符
With test_table1 As ( Select 1 seq_num, '2134?654?ag d35' strings From dual Union All Select 2 seq_num, '651 354a g5 dd21' strings From dual ) Select seq_num, Replace(Replace(Replace(Replace(Replace(strings, '?', ''), 'a', ''), 'g', ''), 'd', ''), ' ', '') From test_table1; ---执行结果 1 213465435 2 651354521
2、translate 用法简单,写法简单,只能处理已知字符,字符串、待查找字符,替换字符,均不能为null,否则返回null,字符串按查找顺序替换,若无则去除
With test_table1 As ( Select 1 seq_num, '2134?654?ag d35' strings From dual Union All Select 2 seq_num, '651 354a g5 dd21' strings From dual ) Select seq_num, translate(strings, '1asdfasg ?', '1') From test_table1; ---执行结果 1 213465435 2 651354521
3、regexp_replace 正则表达式 增强型replace 参数多,可根据正则式处理所有字符
With test_table1 As ( Select 1 seq_num, '2134?654?ag d35' strings From dual Union All Select 2 seq_num, '651 354a g5 dd21' strings From dual Union All Select 3 seq_num, '2134654?ag d35' strings From dual Union All Select 4 seq_num, '16?54?aasdgf78as' strings From dual Union All Select 5 seq_num, '16?!@#$%^&*()~:"+_?><|~8as' strings From dual ) Select seq_num, regexp_replace(strings, '[^0-9]', '') From test_table1; ---执行结果 1 213465435 2 651354521 3 213465435 4 165478 5 168
注:这些是以前所写,现转移到OSC,博客原文:http://www.cnblogs.com/godsweet/p/3274947.html
相关文章推荐
- oracle数据导入导出-exp密码带特殊字符的处理
- oracle 导入数据时对 & 和 ' 特殊字符处理
- Oracle Sql插入数据中特殊字符的处理
- MySQL数据入库时特殊字符处理
- Oracle 特殊字符处理 查找 替换
- java 中JSON数据特殊字符的处理
- jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
- 用NSURLConnection Post上传数据的特殊字符处理
- Oracle中like查询下划线等特殊字符的处理
- JSON中数据特殊字符的处理
- java 中JSON数据特殊字符的处理
- Oracle命令行导入导出(用户名或密码包含特殊字符的特殊情况处理)
- 数据验证之特殊字符处理 [转]
- 用NSURLConnection Post上传数据的特殊字符处理
- oracle 特殊字符的处理
- Linux 下 Oracle 用户的密码包含特殊字符时给 sqlplus 和 imp/exp 传递密码参数的处理
- java 中JSON数据特殊字符的处理
- [求教] - 关于ASP中如何对数据表字段中所包含的特殊字符 ' 与 " 进行转义处理?
- 批量数据生成xml特殊字符处理
- MySQL数据入库时特殊字符处理