Oracle 中varchar varchar2 nvarchar2 有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 中varchar varchar2 nvarchar2 有什么区别?相关的知识,希望对你有一定的参考价值。

如果oracle的字符编码采用GBK,那么一个汉字占两个字节,可如果使用的是UTF-8那么一个汉字占三个字节。大部分情况下使用varchar2类型,可以保证更好的兼容性。

GBK字符集下:varchar2(10)可以存5个中文,可以存10个英文。但是使用length函数获取长度实际上获取的是字符的个数,即:存5个中文的长度为5 , 10个英文的长度为10 。

nvarchar2(10)最多可一存10个中文,最多也只能存10个英文,字符长度也是字符个数,即无论是中文还是英文都是10 。

varchar2的长度最多可以设置为4000,nvarchar2的长度最多可以设置为2000,也就是说,同样都保存中文的话,两个类型最大都可以存2000个中文,如果同样都存英文的话varchar可以存4000个英文,nvarchar2只可以存2000个英文。

oracle中建表时自动把varchar转换为varchar2类型,进行创建。

varchar也是存在不定长的,和varchar2是同义词,区别在于varchar2是oracle自己开发的一个类型,用户将空字符串当成NULL存储,具有更好的兼容性。

 

以上是关于Oracle 中varchar varchar2 nvarchar2 有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 中 char 、varchar 、 varchar2 的区别以及他们的优劣,啥时候用?懂的来

oracle中varchar2类型与integer类型的变量进行运算

oracle 中比较日期大小,日期定义的是varchar2类型的,比如'2011-10-21'

oracle单行函数中的哪些可以用于varchar2

oracle中clob可以转成varchar2吗

Oracle中VARCHAR2的大小声明为1字节是啥意思?