Sprawiasz, że jest to skomplikowane.
Użyj PreparedStatement i addBatch() dla każdego kloba na liście:
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();
Bez grzebania w strunach uciekających, bez problemu z długością literałów, bez potrzeby tworzenia tymczasowych kłębów. I najprawdopodobniej tak szybko, jak przy użyciu pojedynczej instrukcji INSERT ALL.
Jeśli używasz aktualnego sterownika (> 10.2), to myślę, że wywołanie setCharacterStream() i utworzenie czytnika również nie są konieczne. Prosty setString(1, query)
najprawdopodobniej również zadziała.