अगर मुझे Oracle JDBC ड्राइवर सही ढंग से याद हैं (कम से कम पुराने वाले - आपने हमें यह नहीं बताया कि आप किस संस्करण का उपयोग कर रहे हैं) setBytes() का समर्थन नहीं करते हैं (या getBytes() )।
मेरे अनुभव में, setBinaryStream() . का उपयोग करके बहुत अधिक विश्वसनीय और स्थिर है:
InputStream in = new ByteArrayInputStream(data);
pstmt.setBinarySream(4, in, data.length);