Prior to Oracle 12c, DML and DDL VARCHAR2 variables were restricted in size to 4000 bytes. Starting in Oracle 12c, there there is a parameter called MAX_STRING_SIZE which can now be set to EXTENDED which allows DML and DDL VARCHAR2 variables to go up to 32767 bytes in size. The default setting is STANDARD which keeps VARCHAR2 variables at a maximum size of 4000 bytes.
Should this setting be modified from STANDARD to EXTENDED in RSA Identity Governance and Lifecycle?
The value of MAX_STRING_SIZE should be left at the default setting:
MAX_STRING_SIZE=STANDARD
Explanation
Long before Oracle 12c, Oracle has allowed PL/SQL variables to be declared at 32767 bytes in length. However, this does not apply to DML and/or DDL.
From the
Oracle documentation on PL/SQL datatypes:
Although PL/SQL character variables can be relatively long, the maximum width of a VARCHAR2 database column is 4000 bytes. So, you cannot insert VARCHAR2 values longer than 4000 bytes into a VARCHAR2 database column.
Therefore, just because we define PL/SQL variables > 4000, it does not mean we want DML/DDL variables to be > 4000.
Reasons not to change the setting
The MAX_STRING_SIZE parameter is an irreversible change and needs some careful evaluation on how it might affect the functionality of the product. Furthermore, not all RSA Identity Governance and Lifecycle customers might be willing to make the switch, so RSA would need to get their opinions first. Finally, exceeding the limit of 4000 characters usually points to a badly designed functionality that needs to be fixed, instead of working around the problem and waiting for the 32K limit to be reached later on.
Official RSA recommendation
If you experience a problem for which you think this setting should be modified, please report the problem and have an official fix delivered without changing MAX_STRING_SIZE.