We are implementing a JDBC driver to connect to a database hosted on Oracle
but are struggling with which of the 8 possible event types to use in our
triggers. Looking at the documentation it would appear that these are split
as query back and non query back types in broad terms.

If we have understood things correctly, if we to to implement 1,2,4 then
all the information required by the driver to make the changes (add, modify,
delete) would be in the event log table. So if a row was added to the
staging table with say 10 columns, we might expect to see 10 entries in the
event log fully descibing the change in an insert condition

Conversely if we were to implement 4,5,6 and added a row to our 10 column
table, we would see a single entry in the event log telling the driver to go
and read a certain row in the staging table. The net result should be the

What we are interested in is whether there is accepted best practice over
the two approaches. What approach have other people taken, what are the
pro's and con's etc

The documentation does allude to compromises and trade offs, but how do
these manifest in the real world?

Any comments would be most welcome

Tnx and Rgds