Om jag minns rätt så stöder inte Oracle JDBC-drivrutinerna (åtminstone äldre - du berättade inte för oss vilken version du använder) setBytes() (eller getBytes() ).
Enligt min erfarenhet använder jag setBinaryStream() är mycket mer pålitlig och stabil:
InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);