0
我正在使用oracle.jdbc.dcn.DatabaseChangeListener
将插入/更新/删除记录到表中。对于插入,我可以跟踪rowid。但是,我遇到更新和删除问题。使用Oracle数据库更改通知检测更改
对于更新,我正在寻找一种方法来找出更新之前的行/列的值。
对于删除,我得到了被删除的rowid,但这就是我所得到的。我想要某种能力来跟踪哪一行被删除。
我使用oracle.jdbc.OracleConnection
来设置属性。
Properties changeNotifProps = new Properties();
changeNotifProps.put(OracleConnection.DCN_IGNORE_DELETEOP,"false");
changeNotifProps.put(OracleConnection.DCN_IGNORE_INSERTOP, "false");
changeNotifProps.put(OracleConnection.DCN_IGNORE_UPDATEOP , "false");
changeNotifProps.put(OracleConnection.DCN_NOTIFY_CHANGELAG , "0");
changeNotifProps.put(OracleConnection.DCN_NOTIFY_ROWIDS , "true");
changeNotifProps.put(OracleConnection.NTF_LOCAL_HOST , <hostname>);
changeNotifProps.put(OracleConnection.NTF_LOCAL_TCP_PORT , "7115");
return changeNotifProps;
是否有某种属性可以设置检测行的以前的值?
编辑:我忘了提及我在数百张桌子上这样做。我无法添加触发器/表来记录更改。我需要记录JVM中的所有更改。