La réponse est dans le message - ExecuteQuery nécessite un jeu de résultats. Utilisez executeUpdate à la place.
À partir du lien ci-dessus :
-
exécution booléenne() Exécute l'instruction SQL dans cet objet PreparedStatement, qui peut être n'importe quel type d'instruction SQL.
-
ResultSet executeQuery() Exécute la requête SQL dans cet objet PreparedStatement et renvoie l'objet ResultSet généré par la requête.
-
int executeUpdate() Exécute l'instruction SQL dans cet objet PreparedStatement, qui doit être une instruction SQL INSERT, UPDATE ou DELETE ; ou une instruction SQL qui ne renvoie rien, telle qu'une instruction DDL.
le fait que cela fonctionne sur oracle n'est probablement qu'un effet secondaire sur lequel vous avez découvert qu'on ne peut pas compter.