一个查询问题,有点怪。
oracle 10g ,字符集是ZHS16GBK,其中一表中有行数据如下itemuuid prjt_cd itmz_sno
SJZ2009023 SJ SJZ2009023使用 select itemuuid,prjt_cd,itmz_sno
from ims.ITEMIZE where itmz_sno = 'SJZ2009023'
语句查询不出数据;而用模糊查询可以
select itemuuid,prjt_cd,itmz_sno
from ims.ITEMIZE where itmz_sno like '%SJZ2009023%'其他数据可以使用精确查询出数据;
我查询后发现是用length查看SJZ2009023的长度为12,而直接数是10位。各位是否有遇到过。表中ITTEMUUID,ITMZ_SNO是从其他系统导过来的。是否是与字符集有关还是其他原因。请大家多多赐教。谢谢!
oracle 10g ,字符集是ZHS16GBK,其中一表中有行数据如下itemuuid prjt_cd itmz_sno
SJZ2009023 SJ SJZ2009023使用 select itemuuid,prjt_cd,itmz_sno
from ims.ITEMIZE where itmz_sno = 'SJZ2009023'
语句查询不出数据;而用模糊查询可以
select itemuuid,prjt_cd,itmz_sno
from ims.ITEMIZE where itmz_sno like '%SJZ2009023%'其他数据可以使用精确查询出数据;
我查询后发现是用length查看SJZ2009023的长度为12,而直接数是10位。各位是否有遇到过。表中ITTEMUUID,ITMZ_SNO是从其他系统导过来的。是否是与字符集有关还是其他原因。请大家多多赐教。谢谢!
where itmz_sno like '%SJZ2009023%' ;贴出结果
Typ=1 Len=16: 83,74,90,50,48,48,57,48,50,51,40,178,185,41,13,10
SJZ2009023, Typ=1 Len=12: 83,74,90,50,48,48,57,48,50,51,13,10
where itmz_sno like '%SJZ2009023%' ;贴出结果SJZ2009023(补) ,
Typ=1 Len=16: 83,74,90,50,48,48,57,48,50,51,40,178,185,41,13,10
SJZ2009023, Typ=1 Len=12: 83,74,90,50,48,48,57,48,50,51,13,10
set itmz_sno=translate(itmz_sno,'#'||chr(13)||chr(10),'#');