Stai diventando complicato.
Usa una PreparedStatement e addBatch() per ogni clob nel tuo elenco:
String sql = "insert into " + tempTableName + " values (?)";
PreparedStatement stmt = connection.prepareStatement(sql);
for (String query : readQueries) {
stmt.setCharacterStream(1, new StringReader(query), query.lenght());
stmt.addBatch();
}
stmt.exececuteBatch();
Nessun problema con le stringhe di escape, nessun problema con la lunghezza dei letterali, nessuna necessità di creare clob temporanei. E molto probabilmente veloce quanto l'utilizzo di una singola istruzione INSERT ALL.
Se stai utilizzando un driver corrente (> 10.2), penso che nemmeno la chiamata setCharacterStream() e la creazione del Reader siano necessarie. Un semplice setString(1, query)
molto probabilmente funzionerà anche.