Se bem me lembro, os drivers Oracle JDBC (pelo menos os mais antigos - você não nos disse qual versão está usando) não suportam
setBytes()
(ou getBytes()
). Na minha experiência, usando
setBinaryStream()
é muito mais confiável e estável:InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);