最近数据处理时经常发现有数字中含有大量字符,执行过程报“ORA-01722: invalid number”异常,整理了一下,可以有以下几种方法去除:

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?!@#$%^&*()~:"+_?>

)

Select seq_num,

regexp_replace(strings, '[^0-9]', '')

From test_table1;

---执行结果

1    213465435

2    651354521

3    213465435

4    165478

5    168

注:这些是以前所写,现转移到OSC,博客原文:外链网址已屏蔽

oracle ^]字符,oracle数据中特殊字符处理相关推荐

  1. oracle中特殊字符处理

    oracle中特殊字符处理 notepadd++中显示所有在字符观察 CR意思是carriage return,回车,\r,ASCII码为13 LF意思是linefeed,换行,\n,ASCII码为1 ...

  2. 如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中

    如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中 2011-05-12 14:19 方法一,使用SQL*Loader      这个是用的较多的方法,前提必须oracle数据中目的表已经 ...

  3. oracle set feedback off,Oracle数据库之Oracle导出数据中的prompt,set feedback 等是什么意思...

    本文主要向大家介绍了Oracle数据库之Oracle导出数据中的prompt,set feedback 等是什么意思,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. mpt 输出 ...

  4. oracle的删除的row如何,Oracle 删除大表中部分数据

    需求: 项目中有一张表大概有7000多万条数据,造成表空间已满,需要清理部分数据,打算清理3000万. 2B 做法: delete from table_name where ID > '400 ...

  5. 企业实战05:Oracle数据库_操作表中数据

    Oracle数据库专栏 命令后面可以不加;分号 SQL语句后面一定要加;分号 文章目录 操作表中数据 4-1 Oracle 操作表中的数据 4-2 Oracle 复制表数据 4-3 Oracle 修改 ...

  6. oracle数据库恢复aul_[数据库]oracle从dbf文件中恢复数据(通过AUL工具实现)

    [数据库]oracle从dbf文件中恢复数据(通过AUL工具实现) 0 2013-09-27 00:00:18 背景故事:前几天,硬盘故障导致oracle崩溃.重要数据丢失,只剩下孤零零的dbf文件. ...

  7. oracle匹配excel数据,如何用Excel直接查询Oracle中的数据

    如何用Excel直接查询Oracle中的数据 关注:275  答案:2  mip版 解决时间 2021-01-11 08:35 提问者╬═掵中注定 2021-01-10 16:43 如何用Excel直 ...

  8. 删除oracle中的一列数据,Oracle删除表数据

    本篇文章帮大家学习Oracle删除表数据,包含了Oracle删除表数据使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 在本教程中将学习如何使用Oracle DELETE语 ...

  9. oracle中imp命令详解,ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对照...

    ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间 ...

最新文章

  1. MSSQL2005 手工盲注详解
  2. 讨厌别人不写注释,但自己也不爱写?那么试试这个IDEA的注释插件吧!
  3. 四则运算APP最后阶段
  4. 震惊!原来这才是Kafka的“真面目”!
  5. linux pppd源码下载_pppd源代码分析
  6. thinkphp在IIS7.5+环境下部署出现的URL重写问题解决方法
  7. 命名之法 —— 书名及角色、武功(金庸)
  8. MySQL 开发实践
  9. apper安卓×××
  10. Python多线程学习资料1
  11. gambit2.4证书免费分享
  12. AcrelEMS-EV汽车制造能效管理系统解决方案
  13. java聚群_人工鱼群算法超详细解析附带JAVA代码
  14. springboot DataSource
  15. 申请SSL证书需要多长时间
  16. moses 编译_Ubuntu 8.10下moses测试平台搭建全记录
  17. 解决为什么电脑连接不上网络,应该如何查找问题
  18. 新版Logcat使用指南
  19. 【虚幻引擎UE】UE5 超实用插件推荐
  20. Github上Laravel开源排行榜Star数31-60名

热门文章

  1. 天池实验室-Task02-Python入门(中)
  2. 美丽的字符正方形FINAL
  3. C# 数组练习题及答案解析
  4. 微信公众号通过链接实现关注(盗用广告主流量主)
  5. Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
  6. BZOJ 1831 逆序对
  7. 《Head First设计模式》 读书笔记03 装饰对象
  8. 【09】Jenkins:Pipeline 补充
  9. 【ELK123】ElasticSearch+Kibana
  10. java8 Lambda Stream collect Collectors 常用实例