Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Obter RowId de QueryChangeDescription


Eu encontrei o era para obter o RowId. Do queryChangeDescription você pode obter as TabeleChangeDesciptions que não tem nada em comum com o TableChangeDecription do evento. Se houver alterações em mais de uma Tabela, essas tabelas foram listadas no Array. Como estou registrado em apenas uma Tabela, não preciso iterar sobre a lista.

Depois de ter o TableChangeDescription você pode obter o RowChangeDescription para cada linha alterada. A partir disso, você pode obter o RowId.
for (QueryChangeDescription queryChangeDescription : databaseChangeEvent.getQueryChangeDescription()) {
  RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription();
  for (RowChangeDescription rowChangeDescription : rowChangeDescriptions) {
    handleEvent(rowChangeDescription.getRowid());
  }
}