码迷,mamicode.com
首页 > 数据库 > 详细

Oracle中NVARCHAR2字符集不匹配问题

时间:2015-11-24 22:06:42      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

   Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配。

对使用 NVARCHAR2 的地方,需要对字段进行字符转换,加上 to_char(nvarchar2 字段) 即可。

 

   例如:

   SELECT substr(bm.matnr, 3) wlbm, ms.maktx wlms, bm.meins jldw, bm.matkl wlz
 , bm.normt gybzms,bm.laeda gxsj,(case to_char(trim(bm.lvorm)) when ‘X‘ then ‘0‘ else ‘1‘ end) WLZT
   FROM makt ms, mara bm
  WHERE ms.matnr = bm.matnr;

 

   VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。

   VARCHAR在Oracle中不建议使用。

 

   NVARCHAR2和VARCHAR2的区别:

   从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则

   1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。

   2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。 

Oracle中NVARCHAR2字符集不匹配问题

标签:

原文地址:http://www.cnblogs.com/zxpsl/p/4993009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!