Change VARCHAR2 to 32K – 12c Edition

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.  

Please follow and like:
  • Reblogged this on Thoughts from James H. Lui and commented:
    Here’s also the My Oracle Support Main 12c Reference Document – Master Note For Oracle Database 12c Release 1 (12.1) Database/Client Installation/Upgrade/Migration Standalone Environment (Non-RAC) [ID 1520299.1]

  • Have you ever tried this on a non-CDB ? Lot’s of errors on my side. I had to create a CDB before changing the VARCHAR2 limit.

Comments are closed.

Enquire now

Give us a call or fill in the form below and we will contact you. We endeavor to answer all inquiries within 24 hours on business days.