Es solo una suposición rápida, porque no tengo un oráculo disponible para probarlo, pero con MyBatis (que se basa en JDBC) tuve este comportamiento con el último ;
. Intente eliminarlo en su consulta JDBC.
Cree la tabla temporal en una primera declaración, luego en una segunda declaración agregue sus datos.