性能优化/故障排除/长期代维
找 云库管
www.yundba.com
nvarchar2类型,数字和字母都要占用两个字节,这一点比较特殊
1.阿里云的网友oracle数据库遇见怪异的问题现象:
----------------------
Oracle中NVARCHAR2字符集不匹配问题
Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配。
Oracle substr 截取nvarchar2 出现问题
2.测试过程:
----------------------
select parameter, value
from nls_database_parameters
where parameter like '%CHARACTERSET%'
order by parameter;
PARAMETER VALUE
------------------------------ ---------------
NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16
drop table test4
create table test4(c1_var varchar2(10), c2_nvar nvarchar2(10));
insert into test4 (c1_var, c2_nvar) values ('1234567890', '1234567890');
insert into test4 (c1_var, c2_nvar) values ('中国', '中国');
insert into test4 (c1_var, c2_nvar) values ('abcd', 'abcd');
commit;
用substr按字符模式读取varchar2和nvarchar2
select substr(c1_var,1,2), substr(c2_nvar,1,2) from test4
---------------------------------------------------------
SUBSTR(C1_VAR,1,2) SUBSTR(C2_NVAR,1,2)
--------------------------------------------------
12 12
中国 中国
ab ab
用substr按字节模式读取varchar2和nvarchar2
select substrb(c1_var,1,2), substrb(c2_nvar,1,2) from test4
SUBSTRB(C1_VAR,1,2) SUBSTRB(C2_NVAR,1,2)
---------------------------------------------
12 1
中 中
ab a
3.结论:
---------------------------------
nvarchar2列类型下,对于数字和字母都要占用两个字节,这一点比较特殊。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。