WEB开发网
开发学院数据库Oracle 处理Oracle中的不可见字符 阅读

处理Oracle中的不可见字符

 2008-08-26 12:42:25 来源:WEB开发网   
核心提示:今天遇到一则案例,问题是数据库中看来完全相同的字段却存在长度差异,处理Oracle中的不可见字符, 通过lengthb以及dump,我们可以知道问题所在:SQL>selecttrim(log.sname),dump(log.sname),lengthb(log.sname)2fromst.LIMPORT_LOGl

今天遇到一则案例,问题是数据库中看来完全相同的字段却存在长度差异。

通过lengthb以及dump,我们可以知道问题所在:

   SQL>selecttrim(log.sname),dump(log.sname),lengthb(log.sname)

2fromst.LIMPORT_LOGlog

3wherelog.dfee>date'2008-06-22'

4andlog.dfee<date'2008-06-23'

5andlog.sspnamelike'263%'

6groupbylog.sname,dump(log.sname);

TRIM(LOG.SNAME)DUMP(LOG.SNAME)LENGTHB(LOG.SNAME)

----------------------------------------------------------------------------

263网络通信Typ=1Len=15:50,54,51,205,248,194,231,205,168,208,197,0,0,0,015

263网络通信Typ=1Len=11:50,54,51,205,248,194,231,205,168,208,19711

使用DUMP函数我们发现,在有问题的数据中,数据末尾存在几个字符0,0,0,0,也就是多出了几个字符。

正是这多出的几个字符导致了存储异常。

那么这个0代表什么字符呢?在ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的:

处理Oracle中的不可见字符

-The End-

Tags:处理 Oracle 可见

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接