全部产品

NCHAR 数据类型

NCHARUNICODE 字符数据类型,长度固定。您在创建数据库时,列的最大长度由国家字符集定义确定。创建包含 NCHAR 数据类型列的表时,以字符定义列长度。字符数据类型 NCHAR 的宽度规范是指字符数。允许的最大列大小为 2000 字节。

如果希望用较少的空间来存储中文,可以选择 NCHAR 类型。

使用 NCHAR 来存储数据时,如果存储的数据没有达到指定长度,那么数据库将自动补足空格。指定长度时,采用 CHAR 为计量单位,不可以手动指定其他单位。

注意

您不能将 CHAR 值插入 NCHAR 列,也不能将 NCHAR 值插入 CHAR 列。

语法

NCHAR[(size)]

参数

参数

说明

size

表示定长字符数据的长度大小,最大大小由国家字符集定义确定,上限为 2000 个字节。默认定长字符数据的长度最小为 1 个字符。

更多信息

UNICODE 字符集

UNICODE 字符集是对字符的一种编码,具体的编码方式有 UTF-8、UTF-16、UTF-32 和压缩转换等,编码方式决定了一个字符的存储大小,中英文在不同的存储方式上使用的空间是不一样的。

三种编码方式的对比

编码方式 编码字节数 BOM 优点 缺点
UTF-8

不定长编码方式,单字节(ASCII 字符)或多字节(非 ASCII 字符);最小 Code Unit 是 8 位。

无字节序:如果一个文本的开头有字节流 EF BB BF,表示是 UTF-8 编码。

较为理想的 UNICODE 编码方式:与 ASCII 编码完全兼容;无字节序;自同步和纠错能力强,适合网络传输和通信;扩展性好。

变长编码方式不利于程序内部处理。

UTF-16

双字节或者四字节;最小 Code Unit 是 16 位。

有字节序:UTF-16LE(小端序)以 FF FE 代表,UTF-16BE(大端序)以 FE FF 代表。

最早的 Unicode 编码方式,已被应用于大量环境中;适合内存中 Unicode 处理;很多编程语言的 API 中作为 string 类型的编码方式。

无法兼容于 ASCII 编码;增补平面码点编码使用代理对,编码复杂;扩展性差。

UTF-32

固定四字节;最小 Code Unit 是 16 位。

有字节序:UTF-16LE(小端序)以 FF FE 代表,UTF-16BE(大端序)以 FE FF 代表。

固定字节编码读取简单,编译程序内部处理;Unicode 码点和 Code Unit 一一对应关系。

所有字符以固定四字节编码,浪费存储空间和带宽;与 ASCII 编码不兼容;扩展性差;实际使用少。

数据库字符集

  • 用来存储 CHARVARCHAR2CLOB 等类型数据。

  • 用来标示诸如表名、列名以及 PL 变量等。

  • 用来存储 SQL 和 PL 程序单元等。

国家字符集

  • 用来存储 NCHARNVARCHAR2NCLOB 等类型数据。

  • 国家字符集实质上是为 OceanBase 数据库选择的附加字符集,主要作用是为了增强 OceanBase 数据库的字符处理能力,NCHAR 数据类型使用国家字符集,在使用 CHAR 数据类型提供的数据库字符集的同时,NCHAR 类型提供了除了数据库字符集之外的另一种字符集选择。