当前位置:  数据库>oracle

varchar2转化nvarchar2类型乱码

    来源: 互联网  发布时间:2017-05-29

    本文导语: 开发人员有个需求,需将一个字符串,转成nvarchar2类型。但是测试是乱码,例句如下: SQL> select(selectutl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw('i am nvarchar2string')) from dual) from dual; (SELECTUTL_RAW.CAST_TO_NVARCHAR2(UTL_RAW.CAST_TO_RAW('IAMNVARCHAR2STRING')...

开发人员有个需求,需将一个字符串,转成nvarchar2类型。但是测试是乱码,例句如下:

SQL> select(selectutl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw('i am nvarchar2string')) from dual) from dual;

(SELECTUTL_RAW.CAST_TO_NVARCHAR2(UTL_RAW.CAST_TO_RAW('IAMNVARCHAR2STRING'))FROMDUAL)
------------------------------------------------------------------------------------------------------------------------------------
??????????

 

cast_to_raw函数按照缺省字符集将varchar2字符串转换为RAW,而cast_to_nvarchar2是将RAW转换成Nvarchar2类型,nvarchar2依据所选的国家字符集。

SQL> col value formata22               
SQL> select * from nls_database_parameters
  2  where parameterin('NLS_NCHAR_CHARACTERSET','NLS_CHARACTERSET');

PARAMETER                    VALUE
------------------------------ ----------------------
NLS_NCHAR_CHARACTERSET        AL16UTF16
NLS_CHARACTERSET              ZHS16GBK

数据库缺省字符集ZHS16GBK,而国家字符集为AL16UTF16,将ZHS16GBK的RAW用AL16UTF16显示,会产生乱码。如果不产生乱码可以将原字符串'iam nvarchar2 string'转换国家字符集,输出类型为NVARCHAR2。

SQL> select (selectutl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw(translate('i amnvarchar2 string' using nchar_cs))) from dual) from dual;

(SELECTUTL_RAW.CAST_TO_NVARCHAR2(UTL_RAW.CAST_TO_RAW(TRANSLATE('IAMNVARCHAR2STRING'USINGNCHAR_CS)))FROMDUAL)
------------------------------------------------------------------------------------------------------------------------------------
i am nvarchar2 string

SQL>


问题解决。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 浅析Oracle中char和varchar2的区别
  • oracle中 VARCHAR2是什么数据类型
  • 很奇怪,varchar2类型在sql*plus中可以看到正常的字符串,用java读出来却是二进制?
  • 不能把几百个以上的汉字插入oracle varchar2类型的问题!
  • jsp显示oracle中varchar2类型字段 在线等待
  • Oracle中字符集的类型决定varchar2的字符长度


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,