Oracle--Char、varchar,varchar2、nchar、nvarchar2的比较
Posted on 2012-06-02 19:03 尐譁 阅读(282) 评论(0) 编辑 收藏 举报CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。
VARCHAR2(VARCHAR),描述变长字符串。
NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集密切相关,使用方法和CHAR、VARCHAR2相同。
varchar2是oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar。因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变,推荐用varchar2。)
NCHAR、NVARCHAR这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。