Clob-instansen är bunden till 'oracleConnection' som du använder för att skapa den och SimpleJDBCCall använder en annan anslutning för DB-anropet. Det finns två oberoende sessioner från DB-synpunkt och det är anledningen till att klumpen inte finns i sessionen som används av SimpleJDBCCall.
Anslutningen som SimpleJDBCCall använder måste användas för att skapa Clob.
Jag har lyckats lösa ett liknande problem genom att implementera SQLData och genom att extrahera den aktuella anslutningen:
Map<String, Object> values = new HashMap<>();
values.put("IN_bean_type", new MyBean());
simpleJdbcCallOperations.execute(values);
MyBean:
class MyBean implements SQLData {
...
@Override
public void writeSQL(SQLOutput stream) throws SQLException {
...
Clob clob = ((OracleSQLOutput)stream).getSTRUCT().getJavaSqlConnection().createClob(); //hack to get the current connection
clob.setString(1, "stringValue");
stream.writeClob(clob);
...
}
...
}