Oracle学习笔记:使用replace、regexp_replace实现字符替换、姓名脱敏
在数据库中难免会遇到需要对数据进行脱敏的操作,无论是姓名,还是身份证号。
最近遇到一个需求,需要对姓名进行脱敏:
- 姓名长度为2,替换为姓+*;
- 姓名长度为3,替换中间字符为*;
- 姓名长度为4,替换第3个字符为*;
经过一番搜索之后,最终找到了3种方式的实现,具体如下。
一、先查找,再替换
select replace('陈宏宏',substr('陈宏宏',2,1),'*') as name from dual;
注意:此种方法通过对第2个字符进行替换,如果名字为叠名,则会发生上述误替换情况;
二、拼接
select substr('陈宏宏',1,1)||'*'||substr('陈宏宏',3,1) as name from dual;
三、使用regexp_replace进行精准替换
select regexp_replace('陈宏宏','(.)','*',2,1) as name from dual;
注意:regexp_replace支持使用正则表达式对字符串进行替换,该语句解释为从第2个字符开始,取任意1个字符,替换为*;
四、完整的替换代码
create table temp_cwh_002 as select a.acc_nbr,a.act_city,a.city_name,a.number1,a.number2,case when length(a.cust_name) = 2 then regexp_replace(cust_name,'(.)','*',2,1)when length(a.cust_name) = 3 then regexp_replace(cust_name,'(.)','*',2,1)when length(a.cust_name) = 4 then regexp_replace(cust_name,'(.)','*',3,1)else cust_name end cust_name,a.acc_nbr2,a.param_value from temp_cwh_001 a where length(a.cust_name) <= 4
END 2019-01-02 16:44:13
转载于:https://www.cnblogs.com/hider/p/10209321.html
Oracle学习笔记:使用replace、regexp_replace实现字符替换、姓名脱敏相关推荐
- 在大量数据迁移期间oracle学习笔记
在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...
- Oracle学习笔记 字符集概述
Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...
- oracle update单引号,Oracle学习笔记:update的字段中包括单引号
平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...
- oracle学习笔记 参数文件及数据库的启动和关闭
oracle学习笔记 参数文件及数据库的启动和关闭 我们这节课把oracle的参数文件以及oracle的启动关闭讲一下 一)参数文件作用 先看oracle的参数文件 它由来已久了 我们知道oracle ...
- MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结
MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...
- oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...
- Oracle学习笔记---(一)
Oracle学习笔记---(一) 一 1.Oracle简介 Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...
- oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网
oracle学习笔记(一)用户管理 2014-04-13 0 1 --oracle学习第一天 2 --连接 @后面连接数据库实例,具体连接到那个数据库 3 conn scott/tiger@MYORA ...
- 【Oracle】Oracle学习笔记
[Oracle]Oracle学习笔记 目录 [Oracle]Oracle学习笔记 P1.Oracle数据库的安装和配置 P2.Oracle数据库管理 P3-0.初步SQL P3-1.基本SQL SEL ...
- oracle学习笔记 Oracle体系结构概述
oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构. 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一块的将oracl ...
最新文章
- php pdo 时间,php – 使用PDO执行时间记录查询 – 自动完成功能无效
- matlab画CDF曲线
- 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法
- CentOS 命令【备忘】
- mysql 网站 数据库_mysql系统数据库
- 【UOJ188】 Sanrd【类min_25筛】
- Java EE调度程序
- window.location和window.open的区别
- centos 6.7 mysql 5.6_CentOS 6.7 安装 MySQL 5.6 思路整理
- 51NOD-1090-3个数和为0
- 数据库中的年月日表达
- Mutual Review
- 您有一份Microsoft Office 365技能宝典等待签收
- MNIST数据集格式ubyte转png
- VS实现格式化代码及代码缩进
- 超图openlayers
- 有限域的Lagrange插值分析ZUC流密码S盒的代数结构
- java opennlp_java-使用openNLP maxent的训练模型
- 如何在手机查看电脑html
- S9013驱动直流电机原理图
热门文章
- Storm学习(一)Storm介绍
- TWAIN和WIA之间有什么相似/不同之处?
- 上海户口申请条件类比分析
- j90度度复数运算_旋转,复数最直观的理解
- 2022电工(初级)考试试题及答案
- 联想服务器改为win7系统,联想电脑怎么把Win10系统改为win7系统?
- 浙江大学 PTA 递归实现顺序输出整数
- dsp的ad标志位是什么_关于STM32 AD转换的ADC_FLAG_EOC标志位问题
- MySQL基本优化方案
- 语言模型 Probability Based: Language Model