bika
TW金牌会员

UID 138192
精华
27
积分 1720
帖子 941
阅读权限 70
注册 2008-7-23
状态 离线
|
|
|
处理Oracle中的不可见字符
今天遇到一则案例,问题是数据库中看来完全相同的 字段却存在长度差异。
$H!`'m&V7W&I.b9{TechWeb-技术社区 通过 lengthb以及 dump,我们可以知道问题所在:
7Q$R/F/y&o$a$`,H SQL> select trim(log.sname),dump(log.sname),lengthb(log.sname) %K-L4K8p*g
2 from st.LIMPORT_LOG log 9M+P(m0~+^&X.J.i
3 where log.dfee > date '2008-06-22'
7p,r5n!}8y%C)Etech.techweb.com.cn 4 and log.dfee < date '2008-06-23'
,y7w(f#J(O-G:P1K 5 and log.sspname like '263%' 5W2p([.?9]1a*E-{8@+c
6 group by log.sname,dump(log.sname); 7G/h0C!p+]1D3_1?)s
TRIM(LOG.SNAME) DUMP(LOG.SNAME) LENGTHB(LOG.SNAME) tech.techweb.com.cn"[$F"[0j9{*{
------------------- ----------- ---------------------------------------------- 8Y&Z-T&Y2f
263网络通信 Typ=1 Len=15: 50,54,51,205,248,194,231,205,168,208,197,0,0,0,0 15
*o"U-B1f$_9E'V'i)Mtech.techweb.com.cn 263网络通信 Typ=1 Len=11: 50,54,51,205,248,194,231,205,168,208,197 11 |
*{+R9X5[0Z Y'S6Ztech.techweb.com.cn 使用DUMP 函数我们发现,在有问题的数据中,数据末尾存在几个字符0,0,0,0,也就是多出了几个字符。 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#y'X;s,p#M1K5\-y4d1P
正是这多出的几个字符导致了存储异常。 tech.techweb.com.cn3t,} |4G#U7g3U
那么这个0代表什么字符呢?在 ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的: /b-S+j4j/^%r#M

-The End-
|
引用
回复
|
|