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

本教程向您介绍了oracle nvarchar2数据类型,并解释了nvarchar2varchar2之间的区别。

oracle nvarchar2数据类型简介

nvarchar2是可以存储unicode字符的unicode数据类型。 nvarchar2的字符集是在数据库创建时指定的国家字符集。

要在数据库中查找nvarchar2的字符集,请使用以下查询:

select
    *
from
    nls_database_parameters
where
    parameter = 'nls_nchar_characterset';

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

在笔者的oracle数据库服务器中,nvarchar2数据类型使用al16utf16字符集,它使用utf-16编码对unicode数据进行编码。al16utf16使用2个字节来存储一个字符。

nvarchar2存储可变长度的字符数据。 使用nvarchar2列创建表时,最大长度始终为字符长度语义,也是nvarchar2数据类型的默认值,也是唯一的长度语义。

oracle nvarchar2的例子

以下语句创建一个最大长度为50个字符的nvarchar2列的表。

create table nvarchar2_demo (
    description nvarchar2(50)
);

由于当前的国家字符集是:utf-16,所以描述列的最大字节长度是200字节。

请注意,最大字节长度是每个字符中最大字符长度和最大字节数的乘积。

以下语句在nvarchar2_demo表中插入一行:

insert into nvarchar2_demo
values('abcde');

使用dump()函数来查看存储在nvarchar2_demo表中的值的详细信息:

select
    description,
    dump(description,1016)
from
    nvarchar2_demo;

执行上面查询语句,得到以下结果 -

如结果所示,数据类型代码110个字节(5个字符,每个2个字节)。

varchar2与nvarchar2

首先varchar2的最大大小可以是字节或字符,而nvarchar2的最大大小只能是字符。 另外,nvarchar2的最大字节长度取决于配置的国家字符集。

其次,varchar2列只能将字符存储在默认字符集中,而nvarchar2则可以存储几乎任何字符

以下查询返回varchar2数据类型使用的缺省字符集。

select
  *
from
  nls_database_parameters
where
  parameter = 'nls_characterset';

执行上面查询语句,得到以下结果 -

在本教程中,您已经了解了oracle nvarchar2的用法,以及nvarchar2varchar2之间的区别。


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