Oracle 专题
专题目录
您的位置:database > Oracle专题 > Oracle NChar类型
Oracle NChar类型
作者:--    发布时间:2019-11-20

在本教程中,您将了解oracle nchar数据类型以及ncharchar之间的区别。

oracle nchar数据类型概述

oracle nchar数据类型用于存储固定长度的unicode字符数据。nchar的字符集只能是al16utf16utf8,在数据库创建时指定为国家字符集。

当使用nchar列创建表时,nchar列的最大大小始终在字符长度语义中,例如:

create table nchar_demo (
    description nchar(10)
);

在本例中,description列的最大长度是10个字符。 对于nchar列的最大大小,不可能使用字节长度,如下所示:

description nchar(10 byte) -- not possible

nchar列的最大字节长度取决于当前的国家字符集。 它是每个字符中最大字符长度和最大字节数的乘积。

要查找当前的国家字符集,请使用以下语句:

select
    *
from
    nls_database_parameters
where
    parameter = 'nls_nchar_characterset';

执行上面查询语句,得到类似下面的结果 -

al16utf16字符集使用2个字节存储一个字符,所以description列的最大字节长度为20个字节。

oracle将nchar列的最大长度限制为2000字节。 这意味着一个nchar列只能容纳2000字符的1字节字符或1000个字符的2字节字符。

nchar与char比较/区别

首先nchar的最大长度只在字符长度语义上,而char的最大长度可以是字符长度或字节长度语义。
其次nchar将字符存储在国家默认字符集中,而char将字符存储在默认字符集中。

以下语句返回由char使用的默认字符集和由nchar使用的默认国家字符集:

select
    *
from
    nls_database_parameters
where
    parameter in(
        'nls_characterset',
        'nls_nchar_characterset'
    );

执行上面查询语句,得到以下结果(因环境不同而不同) -

在本教程中,您已经了解了oracle nchar数据类型以及ncharchar之间的区别。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册