首页 > 代码库 > plsql developer 查询含有chr(0) 字符串显示不全问题

plsql developer 查询含有chr(0) 字符串显示不全问题

【问题现象】

接到维护组投诉工单,用户上行短信到10086短信办理业务失败,结果查询数据显示为空。

正常情况下系统会将空短信过滤掉,此次该用户的上行短信已经进入业务引擎入库。

维护用plsql developer查看短信字段显示空白,点击详细也是没有内容可复制。

但是在用户受理详情查询可看到用户上行内容。

【初步判断】

用户上行肯定有内容,上行短信估计编码有问题,数据库显示不出。

【处理】

使用length查看字段长度,大于0,确定有内容。百度varchar2 内容不显示。

发现plsql developer对含有chr(0)的字符串,显示有缺陷:

当字符串中含有chr(0)时,plsql developer的程序只会取到chr(0)之前的内容,这和c++中字符串用\0做结束符有关,

如select ‘abc‘||chr(0)||‘def‘ from dual;结果就只显示abc

使用replace替换掉这个不可见字符即可:

select replace(content,chr(0),‘‘) from tablename;

plsql developer 查询含有chr(0) 字符串显示不全问题