Odpowiedź znajduje się w wiadomości - ExecuteQuery wymaga zestawu wyników. Użyj executeUpdate zamiast tego.
Z powyższego linku:
-
wykonywanie logiczne() Wykonuje instrukcję SQL w tym obiekcie PreparedStatement, który może być dowolnym rodzajem instrukcji SQL.
-
ResultSet executeQuery() Wykonuje zapytanie SQL w tym obiekcie PreparedStatement i zwraca obiekt ResultSet wygenerowany przez zapytanie.
-
int executeUpdate() Wykonuje instrukcję SQL w tym obiekcie PreparedStatement, która musi być instrukcją SQL INSERT, UPDATE lub DELETE; lub instrukcja SQL, która nic nie zwraca, taka jak instrukcja DDL.
fakt, że działa na Oracle, jest prawdopodobnie tylko efektem ubocznym, na którym nie można polegać.