I have the following query:
select id from table1 where some_func(?) = 1;
where some_func
is a function which allows its argum
The CLOB could be created in a simple manner:
if(obj instanceof String && ((String) obj).length() >= 4000) {
Clob clob = connection.createClob();
clob.setString(1, (String) obj);
stmt.setClob(i+1, clob);
}
Then these clobs should be freed of course.
From my experience setCharacterStream() is much more reliable than setClob()
String s = (String) obj; StringReader stringReader = new StringReader(s); stmt.setCharacterStream(i + 1, stringReader , s.length());
and it works without the need to create CLOB objects