数据库 的 blob字段    sql 语法是这样  update table  set  name = ? where id=?  但的程序读出来的语法是这样的update table  set  name = empty_blob() where id=?  empty_blob()  请问如何写值?   我已经将值转换为2进制了  可是写不进去

解决方案 »

  1.   


       in = new FileInputStream(flie);
       String sql = "update table set name =? where id=?"
       ps = conn.prepareStatement(sql);
       ps.setBinaryStream(1, in, in.available());
       ps.setInt(2,id);
      

  2.   

     请问 in.available(); 是什么方法。 如果只是一个字符串 该如何传参数?
      

  3.   

    在java或sql的程序里你把blob当成varchar2类型操作就可以了。 不用特意去管他。 Oracle会自动转化。
      

  4.   

     可是不行。。 看了网上的资料 很多人都用 ps.setBlob 转。  怎么初始化?
      

  5.   

    最简单的,你想更新那个二进制流的字段的时候,不要用Update方法,先把这条记录删除了,在插入新的记录(主键还是原来的主键),二进制流更新的时候是有点困难,之前我就是这么做的