oracle存二进制流

  

      对于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();    

你可能感兴趣的:(oracle,blob,二进制流)