sql >> Base de Datos >  >> RDS >> Oracle

Obtener RowId de QueryChangeDescription

Encontré el era para obtener el RowId. Desde la queryChangeDescription puede obtener las TabeleChangeDesciptions que no tiene nada en común con TableChangeDecription del evento. Si hay cambios en más de una tabla, estas tablas se enumeran en la matriz. Debido a que estoy registrado en una sola tabla, no tengo que iterar sobre la lista.

Después de tener el TableChangeDescription puede obtener el RowChangeDescription por cada fila cambiada. De esto puede obtener el RowId.

for (QueryChangeDescription queryChangeDescription : databaseChangeEvent.getQueryChangeDescription()) {
  RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription();
  for (RowChangeDescription rowChangeDescription : rowChangeDescriptions) {
    handleEvent(rowChangeDescription.getRowid());
  }
}