对于blob类型的数据,在oracle中是不能直接用insert into ...这样才插入数据,一定要先插入的一空的blob数据,然后 再 拿出那条数据进行更新才可以成功的。
做法如下:
插入新数据: st.executeUpdate("insert into TESTBLOB (ID,BLOBATTR) values (1, empty_blob())");
empty_blob()为oracle的空blob函数,
更新数据:
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
outStream = rs.getBlob("fafile").setBinaryStream(1L); //
// data是传入的byte数组,定义:
InputStream ins = form.getFaFile().getInputStream();
byte[] data = new byte[ins.available()];
ins.read(data, 0, data.length);
outStream.write(data, 0, data.length);
outStream.flush();
outStream.close();