Jika saya mengingat dengan benar driver Oracle JDBC (setidaknya yang lebih lama - Anda tidak memberi tahu kami versi mana yang Anda gunakan) tidak mendukung setBytes() (atau getBytes() ).
Dalam pengalaman saya, menggunakan setBinaryStream() jauh lebih andal dan stabil:
InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);