Oracle
 sql >> Database >  >> RDS >> Oracle

Ottieni RowId da QueryChangeDescription

Ho scoperto che era per ottenere il RowId. Da queryChangeDescription puoi ottenere il TabeleChangeDesciptions che non ha nulla in comune con TableChangeDescription dall'evento. Se sono presenti modifiche su più tabelle, queste tabelle sono elencate nell'array. Poiché sono registrato su una sola tabella, non devo scorrere l'elenco.

Dopo aver visualizzato il TableChangeDescription puoi ottenere il RowChangeDescription per ogni riga modificata. Da questo puoi ottenere il RowId.

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