处理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编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的:
-The End-
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接