时间:2021-05-24
一、先来看看Oralce中VARCHAR2()和NVARCHAR2()的官方定义
官方文档定义如下:
VARCHAR2(size [BYTE | CHAR])
Variable-length character string having maximum length size bytes or characters. Maximum size is 4000 bytes or characters, and minimum is 1 byte or 1 character. You must specify size for VARCHAR2.
BYTE indicates that the column will have byte length semantics. CHAR indicates that the column will have character semantics.
NVARCHAR2(size)
Variable-length Unicode character string having maximum length size characters. The number of bytes can be up to two times size for AL16UTF16 encoding and three times size for UTF8 encoding. Maximum size is determined by the national character set definition, with an upper limit of 4000 bytes. You must specify size for NVARCHAR2.
二、中文翻译:
VARCHAR2(size [BYTE | CHAR])
具有最大长度的字节数(bytes)或字符数(char)的可变长度的字符类型。最大长度为4000字节/字符,最小长度是1字节/字符。你必须为VARCHAR2()类型指定大小。
BYTE代表该列以字节计算长度,CHAR代表该列以字符计算长度。
NVARCHAR2(size)
具有最大长度的带有字符集属性的可变长度的字符类型。它的长度是AL16UTF16字符集的2倍,UTF8字符集的三倍。它的最大长度取决于字符集,上限位4000字节。您必须为NVARCHAR2()类型指定大小。
三、实战演练
使用字符集为UTF8。
# 验证NVARCHAR2(size)与VARCHAR2(size CHAR)相似SQL> create table t_varchar2(name varchar2(6 CHAR));Table createdSQL> insert into t_varchar2 values('中国');1 row insertedSQL> insert into t_varchar2 values('中华人民共和');1 row insertedSQL> insert into t_varchar2 values('中华人民共和国');insert into t_varchar2 values('中华人民共和国')ORA-12899: 列 "SCOTT"."T_VARCHAR2"."NAME" 的值太大 (实际值: 7, 最大值: 6)SQL> create table t_nvarchar2(name nvarchar2(6));Table createdSQL> insert into t_nvarchar2 values('中国');1 row insertedSQL> insert into t_nvarchar2 values('中华人民共和');1 row insertedSQL> insert into t_nvarchar2 values('中华人民共和国');insert into t_nvarchar2 values('中华人民共和国')ORA-12899: 列 "SCOTT"."T_NVARCHAR2"."NAME" 的值太大 (实际值: 7, 最大值: 6)# 验证NVARCHAR2(sie)与VARCHAR(size CHAR)存在最大长度不同SQL> create table t_varchar2(name varchar2(4000 CHAR));Table createdSQL> create table t_nvarchar2(name nvarchar2(4000));create table t_nvarchar2(name nvarchar2(4000))ORA-00910: 指定的长度对于数据类型而言过长四、区别总结:
NVARCHAR2(size)与VARCHAR2(size CHAR)相似,唯一的区别是NVARCHAR2(size)的最大长度是4000字节(实验测试结果是,在utf8的字符集下,最大长度为2000字符),而VARCHAR2(size CHAR)的最大长度是4000字符。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、Oracle中的varchar2类型我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQLDataTypes中的变
varchar2的最大存储长度是4000。 varchar2是用来存储变长的字符串,其使用语法为varchar2size,其中size为可选,表示该字符串所能
以数据库为例,其邮件是字符型数据,email在数据库中可用varchar2类型。VARCHAR(M)用于表示字符数据,但是VARCHAR可以保存可变长度的字符串
问:sqlserver中的varchar和Nvarchar有什么区别啊,varchar好像是一个英文和一个汉字都站两个字节,而Nvarchar则是一个英文占一个
以数据库为例,其邮件是字符型数据,email在数据库中可用varchar2类型。VARCHAR(M)用于表示字符数据,但是VARCHAR可以保存可变长度的字符串