- Oracle数据库是什么?
- Oracle 11g安装教程
- Oracle 12C安装
- Oracle数据库和实例
- 连接到Oracle数据库
- Oracle示例数据库
- 导入Oracle示例数据库
- Oracle基础入门
- Oracle数据定义
- Oracle数据类型
- Oracle修改数据
- Oracle查询数据
- Oracle连接表
- Oracle操作符
- Oracle约束
- Oracle高级部分
Oracle NChar类型
在本教程中,您将了解Oracle NCHAR
数据类型以及NCHAR
和CHAR
之间的区别。
Oracle NCHAR数据类型概述
Oracle NCHAR
数据类型用于存储固定长度的Unicode字符数据。NCHAR
的字符集只能是AL16UTF16
或UTF8
,在数据库创建时指定为国家字符集。
当使用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
数据类型以及NCHAR
和CHAR
之间的区别。
上一篇:Oracle Char类型
扫描二维码
程序员编程王