Je maakt het veel te ingewikkeld.
Gebruik een PreparedStatement en addBatch() voor elke klomp in uw lijst:
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();
Geen gedoe met ontsnappende snaren, geen probleem met de lengte van de letterlijke letters, geen noodzaak om tijdelijke klompen te maken. En hoogstwaarschijnlijk net zo snel als het gebruik van een enkele INSERT ALL-opdracht.
Als je een huidig stuurprogramma gebruikt (> 10.2), dan denk ik dat de aanroep setCharacterStream() en het maken van de Reader ook niet nodig is. Een eenvoudige setString(1, query)
zal hoogstwaarschijnlijk ook werken.