oracle.jdbc.dcn.DatabaseChangeListener
テーブルへの挿入/更新/削除を記録するために使用しています。挿入物については、ROWIDを追跡できます。ただし、更新と削除に問題があります。
更新については、更新前の行/列の値を確認する方法を探しています。
削除の場合、削除された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にすべての変更を記録する必要があります。