Oracle has made a few changes to the database to allow organizations to reduce the cost of migrating to Oracle 12c. One of these changes is with the size limits that have been placed on the VARCHAR2, NVARCHAR2 and RAW data types. In past versions of Oracle database the maximum size for these data types were 4,000 bytes. In Oracle 12c, these data types can now be increased to 32,767 bytes.
In order to set these data types to use the larger setting, the MAX_STRING_SIZE parameter needs to be set. The only values that this parameter can take is STANDARD and EXTENDED. Once the parameter has been set to EXTENDED, you cannot go back to STANDARD.
Note: Altering MAX_STRING_SIZE will update database objects and possibly invalidate them
To increase the size of the VARCHAR2, NVARCHAR2 and RAW columns for a non-CDB database, these steps need to be followed:
1. Shutdown the database
2. Restart in UPGRADE mode
3. Change the setting of MAX_STRING_SIZE to EXTENDED
4. Run $OH/rdbms/admin/utl32k.sql <- must be connected as SYSDBA
5. Restart in NORMAL mode.
The same procedure can be followed and applied against an Oracle PDB, Oracle RAC database, Oracle Data Guard Logical Standby Databases.