Я не думаю, что вы должны делать это таким образом, поскольку для этого не существует официально документированного API.
Если вы можете возиться с кодом, почему вы не можете использовать log4jdbc?
Oracle JDBC также поддерживает java.util.logging , который вы можете попробовать включить.
Если вас просто интересует сам SQL, вы можете включить трассировку сеанса на сервере Oracle.
Или, может быть, вы можете поместить свой код в то место, где готовится оператор (используя что-то вроде @pinichi)?
Но ради интереса, возиться с отладчиком, с моей версией Oracle JDBC, я могу сделать
if (stmt instanceof oracle.jdbc.driver.OraclePreparedStatement) {
String x = ((oracle.jdbc.driver.OraclePreparedStatement) stmt)
.getOriginalSql();
System.out.println(x);
}