La risposta è nel messaggio:ExecuteQuery richiede un set di risultati. Usa executeUpdate invece.
Dal link sopra:
-
esecuzione booleana() Esegue l'istruzione SQL in questo oggetto PreparedStatement, che può essere qualsiasi tipo di istruzione SQL.
-
ResultSet executeQuery() Esegue la query SQL in questo oggetto PreparedStatement e restituisce l'oggetto ResultSet generato dalla query.
-
int executeUpdate() Esegue l'istruzione SQL in questo oggetto PreparedStatement, che deve essere un'istruzione SQL INSERT, UPDATE o DELETE; o un'istruzione SQL che non restituisce nulla, ad esempio un'istruzione DDL.
il fatto che funzioni su Oracle è probabilmente solo un effetto collaterale su cui non puoi fare affidamento.