Oracle中NVARCHAR2字符集不匹配问题

简介:

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
0
0
« 上一篇: 数据库读写分离
» 下一篇: ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
posted @ 2017-04-24 19:33 左正 阅读( 20) 评论( 0) 编辑 收藏
 
相关文章
|
4月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
7月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
7月前
|
存储 Oracle 关系型数据库
Oracle系列之三:Oracle字符集
Oracle系列之三:Oracle字符集
|
SQL Oracle 关系型数据库
修改oracle数据库字符集
修改oracle数据库字符集
|
SQL Oracle 关系型数据库
oracle修改本机上数据库字符集
oracle修改本机上数据库字符集
131 0
|
Oracle Java 关系型数据库
Java操作oracle数据库提示:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK,问题处理
Java操作oracle数据库提示:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK,问题处理
903 0
|
存储 SQL 自然语言处理
一文搞懂Oracle字符集
一文搞懂Oracle字符集
1198 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库
oracle学习23-区分大小写和字符集不同
oracle学习23-区分大小写和字符集不同
116 0
|
SQL Oracle 关系型数据库
Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法
Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法
579 0
Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法