oracle查询自定义字段只取到了第一个字符


select i.code,(case when i.code='50001' then '服务采集频率' else '主机采集频率' end)name,
        decode(i.start_time,'','-',null,'-',to_char(i.start_time,'yyyy-mm-dd hh24:mi:ss'))start_time,
        nvl(i.interval,'-')interval,
        nvl(i.overtime,'-')overtime,
        nvl(i.createby,'-')createby 
from moni_cfg_clt_interval i where i.code in(50001,50014)

这样取的话,name只会取到第一个字符,“服”或“主”

原因是类型长度问题的,默认是java.lang.character

改正为:

select i.code,to_multi_byte((case when i.code='50001' then '服务采集频率' else '主机采集频率' end))name,"+
        decode(i.start_time,'','-',null,'-',to_char(i.start_time,'yyyy-mm-dd hh24:mi:ss'))start_time,
        nvl(i.interval,'-')interval,
        nvl(i.overtime,'-')overtime,
        nvl(i.createby,'-')createby 
from moni_cfg_clt_interval i where i.code in(50001,50014)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM