Jeśli dobrze pamiętam sterowniki Oracle JDBC (przynajmniej starsze - nie powiedziałeś nam, której wersji używasz) nie obsługują setBytes()
(lub getBytes()
).
Z mojego doświadczenia wynika, że używanie setBinaryStream()
jest znacznie bardziej niezawodny i stabilny:
InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);