As data is written to the Change Tables, it is possible that the Change Table record can exceed the maximum OpenEdge database record size. When this occurs, two Change Table records are written for one change. The second record is known as a split record, or continuation record, since the change is split across two record.. As a part of the CDC implementation, whenever the data exceeds what can be stored in one Change Table record, the database automatically handles creating the two Change Table records to hold the data. The database stores information in the meta-data columns that is needed to return one record, in place of these two records, when the change data record is read. It again fits back into one record, since with the change data is read the meta-data is not returned.
A split record occurs is when data is copied from fields in the source table to the Change Table, and the total size of CDC user data for all captured fields combined is very near to the 32,000 byte limit. Although the meta-data columns don’t consume very much space relative to the record size, the addition of these columns can push the total record size over the size limit.
SQL and ABL handle reading split records differently.
SQL
The SQL engine automatically handles returning one record when reading CDC Change Table record data that has been split into two records. In other words, when coding SQL you don’t need to be aware whether or not there is a continuation record.
ABL
ABL does not automatically handle split records. The ABL programmer must rejoin the split records in code. Helper classes are provided in the OpenEdge.DataAdmin.Util package to aid this process. See OpenEdge Development: Programming Interfaces for details.