12c 扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE
Database SQL Language Reference ---- 》》 Data Types
在Oracle Database 12c中,可以指定 VARCHAR2 、 NVARCHAR2 和 RAW 数据类型的最大大小为 32767 字节。这样,用户便可以在数据库中存储更长的字符串。在本发行版之前, VARCHAR2和 NVARCHAR2 数据类型的最大大小为 4000 字节, RAW 数据类型的最大大小为 2000 字节 。声明的VARCHAR2、 NVARCHAR2 或 RAW 列长度影响如何在内部存储列。
•声明列长度为 4000 字节或更少的 VARCHAR2 和 NVARCHAR2 列以及声明列长度为 2000 字节或更少的 RAW 列在行内存储。
•声明列长度大于 4000 字节的 VARCHAR2 和 NVARCHAR2 列以及声明列长度大于 2000 字节的 RAW 列称为“扩展字符数据类型列”,它们在行外存储。
MAX_STRING_SIZE控制 SQL 中扩展数据类型的最大大小:
• STANDARD 表示在 Oracle 12c 之前使用的数据类型长度限制。
• EXTENDED 表示 Oracle Database 12c 中的 32767 字节限制。
扩展字符数据类型具有以下限制:
•在聚簇表和按索引组织的表中不受支持。
•没有分区内并行 DDL 、 UPDATE 和 DELETE DML 。
•对于在使用自动段空间管理 (Automatic Segment Space Management,ASSM) 进行管理的表空间中存储的表,没有分区内并行直接路径插入。
对比 LOB 数据类型,在 ASSM 表空间管理中,扩展数据类型的字段以 SecureFiles LOB 加以存储,而在非 ASSM 表空间管理中,它们则是以 BasciFiles LOB 进行存储的。
注意点:
Ø 不能将值从EXTENDED更改为 STANDARD 。 The only way to revert is to restore the database from backup prior to running the conversion script, $ORACLE_HOME/rdbms/admin/utl32k.sql
Ø 在RAC环境中,要关闭所有实例。只有将数据库实例参数 MAX_STRING_SIZE 设置为 EXTENDED 后,才能创建包含扩展字符数据类型列的表。 RAC 环境中所有 RAC 节点上 MAX_STRING_SIZE 初始化参数的值也必须相同。