我使用unicode char set选项安装oracle 11g。而且我发现我可以将unicode字符插入CHAR数据类型列。所以我的问题是:
使用unicode选项安装oracle 11g时,CHAR和NCHAR数据类型有什么区别?
最佳答案
有两个主要区别。
CHAR(30) != NCHAR(30)
但CHAR(30 CHAR) = NCHAR(30)
。默认长度语义(由NLS_LENGTH_SEMANTICS参数指定)用于CHAR,但不用于NCHAR。此参数的默认值为字节。 NCHAR的长度始终以字符为单位。这很重要,因为NCHAR(30)将始终包含30个Unicode字符-CHAR(30 CHAR)-但默认情况下CHAR(30)将仅包含30个字节,该字节可能等于或可能不等于30个Unicode字符。
此外,在许多客户端应用程序和某些Oracle组件中,对NCHAR的支持受到限制,因此,如果您对数据库字符集使用AL32UTF8,Oracle的建议是坚持使用CHAR,而根本不使用NCHAR。
关于oracle11g - 使用unicode char set选项安装oracle 11g时,char和nchar数据类型有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15538805/