在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节,但默认还是早期版本的参数。
以下为解决数据库字段4000字符限制办法。
1、以dba 身份进入系统修改参数MAX_STRING_SIZE 为EXTENDED(一定要先设置参数,再进行后续操作):
ALTER SYSTEM SET MAX_STRING_SIZE = EXTENDED SCOPE=SPFILE;
2、关闭数据库实例,
shutdown immediate;
PS:如果是RAC则需要关闭所有实例
3、以upgrade模式启动数据库实例:
startup upgrade;
4、运行脚本:
SQL>@D:\Oracle\app\oracle12\product\12.2.0\dbhome_1\rdbms\admin\utl32k;
5、重启数据库实例。
SQL> shu immediate;
SQL> startup;
6、修改字段长度。
ALTER TABLE TS_LEAVE_TYPE_NEW MODIFY (FORMULA VARCHAR2(18000));
ALTER TABLE TS_LEAVE_TYPE_NEW MODIFY (FORMULASTR VARCHAR2(18000));