Enabling a system to take advantage of the new extended data types requires specific upgrade actions.
Oracle Database 12c introduced
MAX_STRING_SIZE to control the maximum size of
RAW data types in SQL. Setting
MAX_STRING_SIZE = EXTENDED enables the 32767 byte limit introduced in Oracle Database 12c.
To be able to set
MAX_STRING_SIZE = EXTENDED, you must set the
COMPATIBLE initialization parameter to
22.214.171.124 or higher
In addition, you must run the script
utl32k.sql script while the database is open in upgrade mode so that you invalidate and recompile objects that are affected by the change in data type sizes. For example:
CONNNECT SYS / AS SYSDBA SHUTDOWN IMMEDIATE; STARTUP UPGRADE; ALTER SYSTEM SET max_string_size=extended; START $ORACLE_HOME/rdbms/admin/utl32k.sql SHUTDOWN IMMEDIATE; STARTUP;
You can change the value of
EXTENDED. However, you cannot change the value of
STANDARD. By setting
MAX_STRING_SIZE = EXTENDED, you are taking an explicit action that can introduce application incompatibility in your database.
Oracle Database Reference for complete information about
MAX_STRING_SIZE, including recommendations and procedures