A resposta está na mensagem - ExecuteQuery requer um conjunto de resultados. Use executeUpdate em vez de.
Do Link acima:
-
booleano execute() Executa a instrução SQL neste objeto PreparedStatement, que pode ser qualquer tipo de instrução SQL.
-
ResultSet executeQuery() Executa a consulta SQL neste objeto PreparedStatement e retorna o objeto ResultSet gerado pela consulta.
-
int executeUpdate() Executa a instrução SQL neste objeto PreparedStatement, que deve ser uma instrução SQL INSERT, UPDATE ou DELETE; ou uma instrução SQL que não retorna nada, como uma instrução DDL.
o fato de funcionar no oracle é provavelmente apenas um efeito colateral que você descobriu não pode ser confiável.