Вы пробовали @ a_horse_with_no_name предложить использовать java.sql.PreparedStatement
?
В качестве альтернативы вы можете использовать JDBC Escape Syntax . Код будет что-то вроде следующего ...
java.sql.Connection conn = // However you obtain it.
String sql = "select case when {d '2019-06-27'} > trunc(sysdate) then 0 else columnvalue";
java.sql.PreparedStatement ps = conn.prepareStatement(sql);
java.sql.ResultSet rs = ps.executeQuery();
Обратите внимание, что вы можете манипулировать строкой sql
в приведенном выше коде так же, как вы манипулируете любой строкой. Например, вы можете использовать метод String.format()
, чтобы заменить жестко закодированную дату (2019-06-27) экземпляром java.util.Date
.