Oracle11g Oracle数据库中具有AL32UTF8字符集的NVARCHAR2数据类型

Oracle11g Oracle数据库中具有AL32UTF8字符集的NVARCHAR2数据类型,oracle11g,Oracle11g,我继承了一个Oracle 11g数据库,它有许多列为NVARCHAR2的表 如果数据库已具有AL32UTF8字符集,存储Unicode是否需要NVARCHAR2数据类型,如果没有,这些列能否转换为VARCHAR2 谢谢。如果数据库字符集是AL32UTF8,则VARCHAR2列将存储Unicode数据。最有可能的情况是,这些列应转换为VARCHAR2 假设国家字符集是AL16UTF16,这是默认的,也是数据库字符集已经支持Unicode时唯一合理的国家字符集,那么选择使用NVARCHAR2可能是有

我继承了一个Oracle 11g数据库,它有许多列为NVARCHAR2的表

如果数据库已具有
AL32UTF8
字符集,存储Unicode是否需要
NVARCHAR2
数据类型,如果没有,这些列能否转换为
VARCHAR2


谢谢。

如果数据库字符集是
AL32UTF8
,则
VARCHAR2
列将存储Unicode数据。最有可能的情况是,这些列应转换为
VARCHAR2


假设国家字符集是
AL16UTF16
,这是默认的,也是数据库字符集已经支持Unicode时唯一合理的国家字符集,那么选择使用
NVARCHAR2
可能是有意的,因为UTF-16编码有一些好处。例如,如果这些列主要存储日语或中文数据,UTF-16通常每个字符使用2字节的存储空间,而不是UTF-8中的3字节。可能还有其他原因,人们更喜欢一种Unicode编码而不是另一种,这也可能在这里发挥作用。然而,大多数时候,在支持Unicode的数据库中创建
NVARCHAR2
列的人都是无意中这样做的,这并不是因为他们彻底分析了不同Unicode编码的好处。

这是一个非常好、及时和全面的答案。谢谢