Odpověď je ve zprávě - ExecuteQuery vyžaduje sadu výsledků. Použijte executeUpdate místo toho.
Z výše uvedeného odkazu:
-
boolean execute() Provede příkaz SQL v tomto objektu PreparedStatement, což může být jakýkoli druh příkazu SQL.
-
ResultSet executeQuery() Provede dotaz SQL v tomto objektu PreparedStatement a vrátí objekt ResultSet vygenerovaný dotazem.
-
int executeUpdate() Provede příkaz SQL v tomto objektu PreparedStatement, což musí být příkaz SQL INSERT, UPDATE nebo DELETE; nebo příkaz SQL, který nic nevrací, například příkaz DDL.
skutečnost, že to funguje na oracle, je pravděpodobně jen vedlejší efekt, na který, jak jste zjistili, se nelze spolehnout.