BLOB in main table

The BLOB in main table format maps a Service Manager array field as a binary large object (BLOB) within a main table. This array format is good for situations where the following conditions apply:

  • Your array data is in a binary format (such as attachment data or RAD language expressions)
  • You want the option to store very large array elements
  • You want to support complex arrays of structure
  • You do not need to use third-party tools to run reports against your array data

The following table summarize the advantages of using this array mapping format.

Advantages
Advantage Description
Preservation of any native binary data The RDBMS does not have to do any code page translations to store binary data in the array. Since there is no translation from a binary format to a character-based format, there is no chance that the translation will result in data corruption such as high-bit characters becoming question marks.
The array can store very large array elements Since the array is mapped to a binary large object column, the column can occupy a large amount of space. Most RDBMS vendors support at least 2 gigabytes of large object data in such a column.
The array has access to other fields in the main table There is a greater probability that other fields reside in the same main table as the array. Having all or most of your fields in a main table reduces the number of SELECT and JOIN statements your system has to make to fetch a record. The less RDBMS traffic required, the better performance your queries and reports will have.
Support for complex arrays of structure This array format supports complex arrays of structure such as an array of structure within an array of structure.

The following table summarize the disadvantages of using this array mapping format.

Disadvantages
Disadvantage Description
Third-party tools cannot report against the array Service Manager stores array data in a proprietary binary format that third-party reporting tools cannot read.
The RDBMS cannot directly query the array Most RDBMS vendors cannot query a column containing a reference to character large object data.
Any query against the array is inefficient The RDBMS cannot directly query this array format because the column is mapped to a large object data type. Instead, the RDBMS must scan the table to return all rows of the large object column, and then forward the results to Service Manager for evaluation.

To set up an array in a field in main table mapping, you must create the following mappings in a database dictionary record.

Database dictionary element type RDBMS mapping required
Array data type Mapped as a BLOB column in a main table
Sub-field of the array Not mapped
RC flag True

Related concepts

Array mapping options
How do I create good RDBMS mappings?