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.
I’m Bobby Curtis and I’m just your normal average guy who has been working in the technology field for awhile (started when I was 18 with the US Army). The goal of this blog has changed a bit over the years. Initially, it was a general blog where I wrote thoughts down. Then it changed to focus on the Oracle Database, Oracle Enterprise Manager, and eventually Oracle GoldenGate.
If you want to follow me on a more timely manner, I can be followed on twitter at @dbasolved or on LinkedIn under “Bobby Curtis MBA”.