Skip Navigation
Expand
  • Advanced SearchOpens new dialog
    Enter plus (+) or minus (-) signs in search terms to make a word required or excluded
    Search Tips
    Filter by product
    Filter by category
Error adding/editing custom fields or custom objects: "The following table(s) have exceeded the maximum row size."
Answer ID 5626   |   Last Review Date 12/20/2024

How to address reaching maximum row size or maximum class size on custom objects / custom fields.

Environment:

Oracle B2C Service - MySQL limitation, Custom Fields, Custom Objects.

Issue:

I'm not allowed to add new custom fields, or edit the current ones. I get an error that the table has exceeded its maximum row size.

OR

I'm not able to make changes to custom objects, or create new ones. I get an error that the CO class has exceeded its maximum row size or exceeds the maximum class size

OR

"The following table(s) have exceeded the maximum row size."

Resolution:

The design intent of newer versions of the Oracle B2C Service application is such that custom field usage should be phased out and replaced by the use of custom objects where applicable. To further performance tune the application and facilitate lightweight API implementation, core table row sizes are being constrained to 32k bytes.

This size limitation is a combined total of all custom fields, and for pending changes to custom object attributes. If your custom fields are too large, you may not be able to make changes to your custom objects.

The old model of using custom fields has proven inefficient because often the custom field is not used by the majority of records in the table. In many cases custom fields are grouped into folders and it is unlikely that all fields will be populated for each record. The custom field methodology apportions table space to all these fields for every record, regardless of their use.

Alternatively, the new custom object methodology allows a new table (object) to be created in the database to store these data items, and a row is added to that table only when data exists. The custom object rows are joined to the incident rows by a common key, usually the opportunity_id, contact_id, incident_id, etc,. and a parent relationship is defined between the table and the custom object.

You may also find that custom objects will allow enhanced use of the workflow dynamics of the application. Instead of creating a monolithic incident workspace with myriads of tabs and sub-tabs, Workflows allow you to create specific workspaces that align to your incident creation process. The path or flow between each workspace can be guided by decision points and workspaces that correlate to custom objects which can be integrated as needed.

Please note that even if you switch over to custom objects, each object also has a limit of 32k to work with. However, you can utilize numerous objects working in concert to exceed this limitation. Also note that simply reducing the size of fields is inadequate as the product reserves the maximum possible size, regardless of the current settings for the length of fields

There may be circumstances in which custom fields cannot be fully replaced by custom objects due to functionality limitations. However, it is strongly recommended that business processes be evaluated to prioritize the use of custom objects over that of custom fields. This way, the subsequent use of custom fields is as streamlined and efficient as possible. Our Oracle Consulting team can assist you in improving your business processes to work more effectively by employing custom objects to store ancillary data. Contact your Sales Representative / Account Manager to help you with setting up a meeting with Oracle Consulting to discuss the details of your needs.

For the maximum class error:  

  • Reduce something in the new set of fields being added.
  • Remove whatever current incident custom fields are not being used and then add the new ones.
  • Create a new custom object and add the fields to that custom object and then create a relationship between the new custom object and the previous object.

 

If you need further assistance, please submit a question via Ask Technical Support.