当前位置:  数据库>oracle

如何去除Oracle库表结构中的类空格字符

    来源: 互联网  发布时间:2017-04-09

    本文导语: 在涉及数据库操作的工作中,我们常会遇到对2个字符串进行等值比较而非模糊查询:例如比较2个姓名是否相等?但操作人员在将字符串录入系统的时候,可能会录入空格,或者是TAB健(我把这样的看起来像空格,可能实际上并...

在涉及数据库操作的工作中,我们常会遇到对2个字符串进行等值比较而非模糊查询:例如比较2个姓名是否相等?但操作人员在将字符串录入系统的时候,可能会录入空格,或者是TAB健(我把这样的看起来像空格,可能实际上并不是空格的字符称为类空格字符),这样在比较的时候肯定是不等的。怎么办?

1.首先是去除空格在进行比较(比如,把姓名中的所有空格去除):

Update table_name set xm=replace(xm , ' ') ;

如果要查找哪些记录含有' ',可用相关的语句查找。

然后可进行比较。

2.但是我们可能会发现,有些姓名中间或末尾还有类似空格的字符没被去掉,但它们显然已经不是一般的空格了,那么怀疑是Tab健作怪。于是参照网上说的去掉TAB键的办法来处理,用chr(9)来替代空格键(TAB键的ASCII值为9)。先取一条带有类空格字符的记录来做实验:

SELECT replace(xm, chr(9) ) from table_name where bh=’xxx’;

用这个办法会去掉一些真正的Tab键空格,然后采取批量更新的办法。

3.但我遇到的情况没有这么幸运,没能去掉类空格键。怎么办呢?我决定尝试先取得这个类空格键的ASCII码值,然后再用chr(ASCII码值)的方法来处理。

①.取得含类空格键整个字符串的长度 length(),从而确定出类空格键在字符串中的起始位置、类空格键的长度。

②.求出类空格键的ASCII码值:ascii(substr(xm,n,m)); n为类空格键的起始位置;m为长度。

③.SELECT replace(xm, chr(第②步求得的ASCII码值) ) from table_name where bh=’xxx’;

问题得以解决。但我发现,上述第②步求得的ASCII码值为41377,这应该是一个汉字的ASCII码值,看起来又像空格,于是我怀疑,会不会是中文状态下的空格键、TAB键?尝试之后发现不是。我又怀疑,是不是全角、半角的区别?因为我们一般输入字符,是在半角下输入的。我按照第一步“1.首先是去除空格在进行比较……”尝试,输入全角下的空格,进行查找,结果惊喜出现,原来所有未剔除掉的类空格,是全角状态下输入的空格,并接证实了全角下输入的空格,其ASCII码值为41377。

最后发现,杀鸡用了牛刀,因为问题很简单。但采用第3.提到的先取得ASCII码值再来进行剔除的方法,具有通用性!


    
 
 

您可能感兴趣的文章:

  • 去除php注释和去除空格函数分享
  • 去除段首段尾的 和全角的空格的正则
  • Java中去除字符串中所有空格的几种方法
  • asp去除html标记与空格的正则
  • java去除字符串中的空格、回车、换行符、制表符的小例子
  • 用SED去除所有的字母和空格
  • 去除php注释与空格函数
  • JSP输出HTML时产生的大量空格和换行的去除方法
  • php使用strip_tags从字符串中去除html标记
  • jQuery Trim去除字符串首尾空字符的实现方法说明
  • 去除字符串中的相同的字符串的sql函数
  • C# 去除首尾字符或字符串的方法
  • 如何用C语言去除字符串两边的空字符
  • sql函数实现去除字符串中的相同的字符串
  • sqlserver中去除字符串中连续的分隔符的sql语句
  • 截字符串 去除HTML标记
  • php去除字符串换行符实例解析
  • php去除字符串换行符示例分享
  • JS使用正则去除字符串最后的逗号
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP去除html标签,php标记及css样式代码参考
  • java去除集合中重复元素示例分享 java去除重复
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 如何去除linux安装时多余的启动项
  • 在linux命令模式下绘制的窗口里的光标如何去除?
  • 用python实现的去除win下文本文件头部BOM的代码
  • mysql中如何去除小数点后面多余的0
  • 如何去除批处理虚拟机产生的dos黑框?
  • 请问如何才能将大量文件合并成一个文件并去除所有空行?
  • 怎么样去除浏览器中的滚动条,而采用内部的滚动条!
  • 如何去除LINUX造成的C盘启动程序
  • vi使用的问题,怎样去除查找后的高亮显示?
  • 怎么去除SWAP的内存?
  • SQL分组排序去除重复实例
  • 怎样将活动分区标志去除?????(急)
  • java 在 98/me 的输入法提示如何去除?
  • mysql SELECT语句去除某个字段的重复信息
  • 高分求解:关于如何去除Netware4.11的一个告警?(up有分)
  • PHP去除重复图片文件的代码
  • 正则表达式去除<xml>标签中的内容
  • SQL Server去除外键的存储过程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3