当前位置: 首页> 健康> 知识 > 招聘信息如何发布_合肥政务区建站公司_青岛做网络推广的公司有哪些_个人博客网页制作

招聘信息如何发布_合肥政务区建站公司_青岛做网络推广的公司有哪些_个人博客网页制作

时间:2025/7/9 5:07:41来源:https://blog.csdn.net/weixin_43987408/article/details/146117340 浏览次数:1次
招聘信息如何发布_合肥政务区建站公司_青岛做网络推广的公司有哪些_个人博客网页制作

本文以 Oracle12c 为例

1.主要区别对比

类型存储方式最大长度字符集支持适用场景备注
CHAR(M)固定长度+空格填充2000 字节,M 代表字节长度默认字符集固定长度编码实际存储长度固定为定义长度(如 CHAR(10) 始终占 10 字节)
VARCHAR2(M)可变长度4000 字节,M 默认代表字节长度默认字符集可变长度文本标准模式下最大为 4000 字节,扩展模式可到 32767 字节(需手动启用)
NCHAR(M)固定长度+空格填充2000 字符,M 代表字符长度国家字符集多语言固定长度文本M 支持的长度受字符集影响
NVARCHAR2(M)可变长度4000 字节,M 代表字符长度国家字符集多语言可变长度文本M 支持的长度受字符集影响
CLOB大文本4GB数默认字符集超大单字节文本(如日志、XML)实际存储受表空间和数据块限制
NCLOB大文本4GB国家字符集超大多语言文本实际存储受表空间和数据块限制

VARCHAR 类型在 Oracle 中支持有限,不建议使用。

类型前缀为 “N” 代表使用的是国家字符集,且字符存储时采用 Unicode,且在多语言情况下相同字符所需的存储空间可能更小。

类型前缀不带 “N” 代表采用数据库默认的字符集,可能会导致字符存储时不采用 Unicode 编码方式。但一般数据库默认的字符集都是 UTF8 类型的。因此一般用不带 “N” 的类型就可以了。

前缀带 “N” 的类型长度 M 代表的都是字符长度,不带 “N” 的类型长度 M 默认都是指字节长度

查看当前数据库默认字符集和国家字符集的方式如下:

-- 查看数据库字符集(默认字符集)、国家字符集
SELECT *
FROM nls_database_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

输出为:
在这里插入图片描述
可以看到此时默认字符集为 AL32UTF8,国家字符集为 AL16UTF16。

​数据库默认字符集:

  • AL32UTF8:Unicode UTF-8(Unicode 5.0+(新标准))。
  • ZHS16GBK:简体中文 GBK 编码。
  • WE8MSWIN1252:西欧字符集。

​国家字符集:

  • AL16UTF16:Unicode UTF-16。
  • UTF8:Unicode UTF-8(Unicode 3.1(旧标准))。

2.补充

上文提到,字符类型长度 M 能指定的最大值与数据集相关。比如在多字节字符集(如 AL16UTF16),建表时用 NVARCHAR2(4000) 会报错,可能原因是超过了最大字节长度 4000。

此外,M 能指定的最大长度还与“数据库块大小(默认 8KB)”、“数据库是否开启扩展模式” 等因素有关。

-- 查看块大小
SELECT value AS "块大小 (字节)"
FROM v$parameter
WHERE name = 'db_block_size';-- 查看扩展模式
SELECT value AS "扩展模式"
FROM v$parameter
WHERE name = 'max_string_size';
关键字:招聘信息如何发布_合肥政务区建站公司_青岛做网络推广的公司有哪些_个人博客网页制作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: