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个。
【推荐】腾讯云新用户域名抢购1元起,抓紧抢购
· 阮一峰:加密货币的本质
· ofo被曝订单较峰值跌六成 账户现金仅能支撑一个月
· 途牛宣布一亿美元股票回购计划及CTO任命
· 我们帮你划了一份微信公开课PRO的重点
· iPhone 4S起死回生,可降级至iOS 6.1.3
» 更多新闻...
· 以操作系统的角度述说线程与进程
· 软件测试转型之路
· 门内门外看招聘
· 大道至简,职场上做人做事做管理
2015-04-24 sql语句or与union all的执行效率比较
2015-04-24 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表
2014-04-24 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 [问题点数:20分,结帖人wenyang2004]
2014-04-24 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
2012-04-24 把16进制值转换成颜色&颜色16进制值表 .