Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Rufen Sie RowId von QueryChangeDescription ab

Ich fand das war, um die RowId zu bekommen. Aus der queryChangeDescription Sie können die TabeleChangeDesciptions abrufen was nichts mit der TableChangeDecription aus dem Event gemeinsam hat. Wenn es Änderungen an mehr als einer Tabelle gibt, werden diese Tabellen im Array aufgelistet. Da ich nur bei einer Tabelle registriert bin, muss ich die Liste nicht durchlaufen.

Nachdem Sie die TableChangeDescription Sie können die RowChangeDescription abrufen für jede geänderte Zeile. Daraus erhalten Sie die RowId.

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