A row LCR describes a change to the data in
a single row or a change to a single LONG, LONG RAW, or LOB
column in a row. The change in rows is caused by a DML statement
or a piecewise update to a LOB.
A single DML statement may insert or merge
multiple rows into a table, may update multiple rows in a table,
or may delete multiple rows from a table. In this situation, a
single DML statement would produce multiple row LCRs. That is, a
capture process creates an LCR for each row that is changed by
the DML statement. Also an update to a LONG, LONG RAW, or LOB
column in a single row may result in more than one row LCR.
Each row LCR is encapsulated in an object
of lcr$_row_record type and contains the old and new
values of the row. It also has many attributes that identify the
source name, command type, SCN, and object name. A captured row
LCR also contains transaction control statements such as the
COMMIT and ROLLBACK. Such row LCRs are internal and are used by
an Apply process to maintain transaction consistency between a
source database and a destination database.
A full list of the attributes shown below:
source_database_name - This is the
name of the source database where the row change occurred.
command_type - This is the type of
DML statement that produced the change, either INSERT, UPDATE,
DELETE, LOB ERASE, LOB WRITE, or LOB TRIM.