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

So erhalten Sie Werte von Bindungsparametern aus dem Oracle JDBC PreparedStatement-Objekt

Die meisten Protokollierungs-Frameworks haben den Begriff für Verschachtelter Diagnosekontext . Sie können Ihre Abfrage und ihre Parameter dort speichern, wenn Sie die vorbereitete Anweisung ausfüllen.

Oder vielleicht in einem Schritt:

PreparedStatement fillAndLog(Connection conn, String query, Object... args) {
    int i = 0;
    PreparedStatement pstmt = conn.prepareStatement(query);
    for (Object o : args) {
       if (o instanceof String) {
           pstmt.setString(i, (String)o);
       } // else...
       i++;
    }
    log.debug(String.format(query.replaceAll("\\?", "%s"), args));
    return pstmt;
}