文档章节

关于去除数据中特殊字符(非数字字符)的一些方法

吕兵阳
 吕兵阳
发布于 2014/10/24 16:40
字数 330
阅读 15
收藏 0

最近数据处理时经常发现有数字中含有大量字符,执行过程报“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?!@#$%^&*()~:"+_?><|~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

 

本文转载自:http://www.cnblogs.com/godsweet/p/3274947.html

共有 人打赏支持
吕兵阳
粉丝 94
博文 276
码字总数 105376
作品 0
郑州
后端工程师
私信 提问
Python3基础之学习笔记(六)-json与pickle数据序列化-项目目录结构-模块详解

文章目录 1. json与pickle数据序列化 2. 项目目录结构 3. 模块详解 1. json与pickle数据序列化 1.1 json序列化与反序列化 1.1.1 json序列化 1.1.2 json反序列化 1.1.3 json小结 Json只能进行...

GoldenKitten
01/15
0
0
Learn Python3:正则表达式

一、什么是正则表达式 正则表达式(,常使用缩写的术语或),是一组由字母、数字、符号组成的特殊文本,用来给字符串定义一个规则,以验证字符串是否匹配、切分字符串、提取字符串等。 二、字...

Othershe
2017/10/25
0
0
php几个关于安全的函数

mysqlrealescapestring() 这个函数对于在PHP中防止SQL注入攻击很有帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询以前已经是安全的了。但你要注意你...

卖小女孩的火柴
2015/12/23
33
0
2017-11-5Linux基础知识(10)bash基础特性

在上一章中我们讲述了bash基础特性之命令补全和路径补全以及它的命令引用,以及讲了文件管理命令,例如:复制、移动和删除,然后我们也讲述了变量,主要围绕着存储格式、数据范围和参与运算。...

刘祥宇
2017/11/08
0
0
JavaScript学习笔记(二)

JavaScript的数据类型分为:原始类型和对象类型。JavaScript中有两个特殊的原始值:null(空)和undefined(未定义)。 JavaScript中所有数字均用浮点数值表示。javaScript采用64位浮点格式表示数...

第五郎
2014/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

生产者消费者问题(PV操作)

一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减...

shzwork
5分钟前
0
0
重新认识网络通信协议

OSI网络分层 应用层 http, smtp,pop3这些都属于应用层协议 为用户的应用程序提供服务 表示层 确保一个系统的应用层发送的信息被另一个系统的应用层接收到 会话层 通过传输层建立数据传输的通...

最胖的瘦子
16分钟前
0
0
【转】分布式数据流的轻量级异步快照

本篇翻译自论文:Lightweight Asynchronous Snapshots for Distributed Dataflows,Flink的容错快照模型即来源于该论文。原文地址:https://arxiv.org/pdf/1506.08603.pdf 分布式数据流的轻量...

yiduwangkai
19分钟前
0
0
java使用反射机制设置私有成员变量的值

写一个方法:public void setProperty(Objectobj, String propertyName, Object value){}, 此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyNam...

群星纪元
25分钟前
0
0
用 Tapestry 的方式在页面模板中加入注释

<span jwcid="$remove$">这里是注释</span>

LeoXu
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部