Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节。只要可能,扩展字符的大小会降低对LOB数据类型的使用。为了启用扩展字符大小,你必须将MAX_STRING_SIZE的初始数据库参数设置为EXTENDED。

发布时间 2023-08-19 14:01:55作者: Libra_bai

1.查看参数max_string_size默认值

SQL> show parameter max_string_size

NAME                                      TYPE                                 VALUE
------------------------------------ --------------------------------- ------------------------------
max_string_size                     string                                  STANDARD

2. 关闭数据库
SQL> shutdown immediate;

3. 以升级模式重启数据库
SQL> startup upgrade;

4. 更改参数: ALTERSYSTEM SET MAX_STRING_SIZE=EXTENDED;
SQL> alter system  set max_string_size=extended scope=spfile;

5. 执行 utl32k.sql as sysdba:

SQL> @$ORACLE_HOME/rdbms/admin/utl32k.sql

6. 检查一下有没有产生失效对象
SQL> select count(*) from dba_objects where status<>'VALID';

7.编译无效对象

@?/rdbms/admin/utlrp.sql

8. 关闭数据库
SQL> shutdown immediate;

9. 以读写模式重启数据库
SQL> startup;

8.检查参数max_string_size , 与失效对象。
SQL> show parameter max_string_size

SQL> select count(*) from dba_objects where status<>'VALID';

9. 测试
SQL> create table f_32k (name varchar2(32000)); 

注意:一旦更改,你就不能再将设置改回STANDARD。