加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – VARCHAR2(10 CHAR)和NVARCHAR2(10)之间的差异

发布时间:2020-12-12 14:24:23 所属栏目:百科 来源:网络整理
导读:我已经安装了Oracle数据库10g快捷版(通用)与默认设置: SELECT * FROM NLS_DATABASE_PARAMETERS;NLS_CHARACTERSET AL32UTF8 NLS_NCHAR_CHARACTERSET AL16UTF16 由于CHAR和NCHAR数据类型似乎都接受多字节字符串,这两个列定义之间有什么区别呢? VARCHAR2(10
我已经安装了Oracle数据库10g快捷版(通用)与默认设置:
SELECT * FROM NLS_DATABASE_PARAMETERS;

NLS_CHARACTERSET               AL32UTF8                                 
NLS_NCHAR_CHARACTERSET         AL16UTF16

由于CHAR和NCHAR数据类型似乎都接受多字节字符串,这两个列定义之间有什么区别呢?

VARCHAR2(10 CHAR)
NVARCHAR2(10)
对于要对某些列使用Unicode而对数据库的其余部分保留另一个字符集(使用VARCHAR2)的数据库,Oracle引入了 NVARCHAR2数据类型。 NVARCHAR2是仅限Unicode的数据类型。

您可能希望使用NVARCHAR2的一个原因可能是您的数据库使用非Unicode字符集,并且您仍希望能够在不更改主字符集的情况下为某些列存储Unicode数据。另一个原因可能是您想使用两个Unicode字符集(AL32UTF8用于主要来自西欧的数据,AL16UTF16用于主要来自亚洲的数据),因为不同的字符集不会同样有效地存储相同的数据。

示例中的两列(Unicode VARCHAR2(10 CHAR)和NVARCHAR2(10))将能够存储相同的数据,但是字节存储将不同。一些字符串可以在一个或另一个中更有效地存储。

注意,一些功能不能与NVARCHAR2一起使用,请看这个SO问题:

> Oracle Text will not work with NVARCHAR2. What else might be unavailable?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读