Se ricordo bene i driver Oracle JDBC (almeno quelli più vecchi - non ci hai detto quale versione stai usando) non supportano setBytes() (o getBytes() ).
Nella mia esperienza, usando setBinaryStream() è molto più affidabile e stabile:
InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);