欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle substr 截取nvarchar2 问题

程序员文章站 2022-06-25 11:40:02
...

 

 

-- 查询业务类型 
-- 数据内容为:2,3,4  
-- 需求截取第一个字符

select ris.info_sys_guid,
         substr(ris.business_type ,1,1) business_type
    from rec_info_sys ris

结果business_type 显示为空。

后查看数据类型为nvarchar2  对varchar2类型做测试正常

故对nvarchar2 进行转换成varchar2

select ris.info_sys_guid,
       substr(utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(Translate(ris.business_type USING CHAR_CS))),1,1) business_type
  from rec_info_sys ris ;


Translate(ris.business_type USING CHAR_CS) 用于汉字和特殊字符的转换

utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(ris.business_type )) 转换成varchar2,只能转换纯英文字符

最后截取就从1开始 截取一位  正常