专栏首页datartisan如何处理数据库表字段值中的特殊字符?

如何处理数据库表字段值中的特殊字符?

现网业务运行过程中,可能会遇到数据库表字段值包含特殊字符的场景,此场景虽然不常见,但只要一出现,其影响却往往是致命的,且排查难度较高,非常有必要了解一下。

表字段值中的特殊字符可以分为两类:可见字符、不可见字符。

可见字符处理

业务的原始数据一般是文本文件,因此,数据插入数据库表时需要按照分隔符进行分割,字段值中包含约定的分隔符、文本识别符都属于特殊字符。

常见的分隔符:, | ;

文本识别符:'' ""

这种特殊字符会导致数据错列,json无法翻译等问题,严重影响业务运行,应该提前处理掉。有人就说了,我接手的别人的数据库,不清楚是不是存在这个问题,这个咋办呢?没关系的,一条update语句就可以拯救你。

-- 语法
UPDATE 
   table_name
   SET 
   column_name = REPLACE(column_name, old_text, new_text)
 WHERE 
   condition;
-- 应用样例
UPDATE 
   customer
   SET 
   email = REPLACE (email, '|', '_');

不可见字符处理

上边讲述了可见字符的处理,对于不可见字符例如:换行符LF、回车键CR,又该如何处理呢?别怕,sql支持unicode编码,把换行符、回车键对应的unicode编码转换为空就好了。

UPDATE `WORKORDER` 
   SET WORKID = REPLACE(REPLACE(WORKID, CHAR(10),''), CHAR(13),'');
-- 这里使用了函数的嵌套,一条语句完成了换行符和回车键的转换,也可以转换两次。

本文分享自微信公众号 - 乐享数据8090(gh_5703273a0562),作者:披头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java如何获得数据库表中各字段的字段名

    ydymz
  • 网络字体@font-face 如何处理网页中的特殊字体

    HTML5学堂:随着网页的发展,网页中出现了越来越多的字体种类,网页自带的微软雅黑、宋体、黑体已经越来越难以满足设计的需要,那么,如何在网站中使用比较特殊的字体...

    HTML5学堂
  • 如何得到数据库中所有表字段及字段中文描述

    如何得到数据库中所有表字段及字段中文描述 以下资料,通过csdn的一位师兄从SQL版主那得到: sql中 SELECT  (case when a.c...

    Java架构师必看
  • 使用新类型Nullable处理数据库表中null字段

    在.net 2.0中,提供了 Nullable的范型,通过它,我们可以为基础类型如int等赋予null的值,这样我们就可以处理null值了。 例子代码 数据表...

    张善友
  • java如何获得数据库表中字段等相关的信息

    gfu
  • mongodb查询数据库中某个字段中的值包含某个字符串的方法

    蓓蕾心晴
  • mysql数据库中指定值在所有表中所有字段中的替换

    憨批程序员
  • 如何查找BAPI SD_SALESDOCUMENT_CHANGE里字段对应的数据库存储表

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 如何查找BAPI SD_SALESDOCUMENT_CHANGE里的字段对应的数据库存储表

    BAPI函数SD_SALESDOCUMENT_CHANGE可以让我们很方便地通过ABAP代码来修改Sales Order。

    Jerry Wang
  • 如何查看类型为LRAW的SAP ABAP数据库表字段的内容

    SAP帮助文档上提到:当一个buffered数据库表被修改时,其buffer也会自动被更新,包括其他应用服务器实例上针对该表的buffer也会以异步的方式自动被...

    Jerry Wang
  • 如何查找SAP Fiori UI上某个字段对应的底层数据库表

    我国古代,形容一个人武艺全面,会说他/她“十八般兵器样样精通”。所谓十八般兵器(有时也称十八般武艺),即刀、枪、剑、戟、斧、钺、钩、叉、鞭、锏、锤、抓、镋、棍、...

    Jerry Wang
  • 如何查找SAP Fiori UI上某个字段对应的底层数据库表

    我国古代,形容一个人武艺全面,会说他/她“十八般兵器样样精通”。所谓十八般兵器(有时也称十八般武艺),即刀、枪、剑、戟、斧、钺、钩、叉、鞭、锏、锤、抓、镋、棍、...

    Jerry Wang
  • Java向Oracle数据库表中插入CLOB、BLOB字段

    在需要存储较长字符串到数据库中时往往需要使用一些特殊类型的字段,在Oracle中即blob和clob字段,一般而言:Clob字段存储字符信息,比如较长的文字、评...

    ZONGLYN
  • 如何找到某个 ABAP structure 某字段的源头来自哪个数据库表

    如何找到某个 ABAP structure 里的某个字段,运行时的值是从哪个数据库表的字段里写入的?

    Jerry Wang
  • 导入导出文件测试点

    7.接口文件的内容验证(如特殊数据类型(日期)是如何处理的,某字段值为空时如何处理,各个字段值内容是否正确)

    软件测试君
  • 建议收藏 | 专业的MySQL开发规范

    命名规范的对象是指数据库SCHEMA、表TABLE、索引INDEX、约束CONSTRAINTS等的命名约定

    rare0502
  • 07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据

    上述例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化...

    用户1250179
  • mysql的空值与NULL的区别

    Mysql数据库是一个基于结构化数据的开源数据库。SQL语句是MySQL数据库中核心语言。不过在MySQL数据库中执行SQL语句,需要小心两个陷阱。   陷阱一...

    李海彬
  • MySQL手工注入学习-1

    页面提示:Please input the ID as parameter with numeric value

    Mirror王宇阳

扫码关注云+社区

领取腾讯云代金券