When I search the web for inserting BLOBs into Oracle database with jdbc thin driver, most of the webpages suggest a 3-step approach:
empty_blob()
I found a simple call to setObject(pos, byte[]) works for my case.
From Database Programming with JDBC and Java By George Reese,
byte[] data = null;
stmt = con.prepareStatement("INSERT INTO BlobTest(fileName, "
+ "blobData) VALUES(?, ?)");
stmt.setString(1, "some-file.txt");
stmt.setObject(2, data, Types.BLOB);
stmt.executeUpdate();