Oracle
 sql >> Base de données >  >> RDS >> Oracle

Obtenir RowId à partir de QueryChangeDescription

J'ai trouvé que c'était pour obtenir le RowId. Depuis le queryChangeDescription vous pouvez obtenir le TabeleChangeDesciptions qui n'a rien en commun avec la TableChangeDecription de l'événement. S'il y a des modifications sur plus d'une table, ces tables sont répertoriées dans le tableau. Comme je ne suis inscrit que sur une seule table, je n'ai pas à parcourir la liste.

Après avoir utilisé la TableChangeDescription vous pouvez obtenir le RowChangeDescription pour chaque ligne modifiée. À partir de là, vous pouvez obtenir le RowId.

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