oracle 替换字符串中指定位置内容 您所在的位置:网站首页 oracle指定字符串位置 oracle 替换字符串中指定位置内容

oracle 替换字符串中指定位置内容

2024-07-13 03:16| 来源: 网络整理| 查看: 265

oracle 替换字符串中指定位置内容 原创

Marydon 2023-02-14 09:22:35 博主文章分类:Oracle ©著作权

文章标签 ORACLE JAVA 字符串 解决方案 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者Marydon的原创作品,请联系作者获取转载授权,否则将追究法律责任

 

1.情景展示

  返回服务器的身份证号需要进行加密:只保留前四位和后四位,中间使用*代替,如何实现?

2.解决方案

  第一步:查看该表的身份证号的长度有几种类型;

oracle 替换字符串中指定位置内容_JAVA

  第二步:编写sql

  错误方式:

oracle 替换字符串中指定位置内容_字符串_02

  长度为15的会被替换成''。

  正确方式:

--截取身份证号SELECT DECODE(LENGTH(ID_CARD), 18, REPLACE(ID_CARD, SUBSTR(ID_CARD, 5, 10), '**********'), 15, REPLACE(ID_CARD, SUBSTR(ID_CARD, 5, 7), '*******')) 身份证号 FROM VIRTUAL_CARD_TEMP;

oracle 替换字符串中指定位置内容_字符串_03

2020/07/03

oracle 替换字符串中指定位置内容_解决方案_04

身份证号保留首位和最后六位的前三位,如何实现?

SELECT DECODE(LENGTH(V.CARDNUM), 18, SUBSTR(V.CARDNUM, 1, 1) || '***********' || SUBSTR(V.CARDNUM, 13, 3) || '***', 15, SUBSTR(V.CARDNUM, 1, 1) || '********' || SUBSTR(V.CARDNUM, 10, 3) || '***') CARDNUM FROM VIRTUAL_CARD V

oracle 替换字符串中指定位置内容_解决方案_05

JAVA代码实现

String str = "*";String id = "";for (int i = 0; i < list.size(); i++) { if (list.get(i).get("CARDNUM") != null) { id = list.get(i).get("CARDNUM").toString(); StringBuilder sb = new StringBuilder(id); for (int t = 1; t < id.length(); t++) { if (t == id.length() - 6 || t == id.length() - 5 || t == id.length() - 4) {} else { sb.replace(t, t + 1, str); } } list.get(i).put("CARDNUM", sb); id = ""; }}

  

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

作者:Marydon

收藏 评论 分享 举报

上一篇:oracle 拼接字符串的两种方式

下一篇:oracle 批量删除表数据的4种方式



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有