zoukankan      html  css  js  c++  java
  • oracle trim不掉空白字符分享(转)


    问题背景:
    一个工商注册号,正常的用trim能解决的问题,但是这个case,trim后和肉眼看到的就是不一样就是多了一个字符
    分析问题:
    为了能问题重现,下面模拟 创造一个12345加上一个特殊字符(假象空白)
    select concat('123456',chr(9)) as xx  from dual)
     
     
     
    1.看看长度
    SELECT  length(concat('123456',chr(9))) as xx  from dual

     

    看到上面里面 心里感觉有空字符(6!=7)
     
    试试 trim的效果
        SELECT  length(xx),length(trim(xx))
        from(
    select concat('123456',chr(9)) as xx  from dual)
     
    发现trim不掉还是7个长度
     
    Ok我们用dump函数来了解oracle的数据类型存储方式
    select dump(xx) from (select concat('123456', chr(9)) as xx from dual)


     
    上面type=1标示 值得类型是VARCHAR2
    Len标示该值占用的字节数,是7个长度
    49,50,51,52,53,54,9
    49,50,51,52,53,54对于ascii码是123456
    而9 这个ascii值是 水平定位符号
     
    但是这个9是怎么进去的呢? 是ctrl+tab键加入的!

    ascii 码在线查询:http://www.supfree.net/search.asp?id=6132
  • 相关阅读:
    将图片转换为base64 格式
    BFC
    面试
    不足之处
    html 调用摄像头 并抓拍
    css,js零散知识的整理
    语义化标签SEO
    Modernizr
    快速排序(2)
    快速排序(1)
  • 原文地址:https://www.cnblogs.com/go2anywhere/p/3314268.html
Copyright © 2011-2022 走看看