clob好象不是二进制对象吧,DOC存在里面,恢复不出来的吧?
BLOB可以的。

解决方案 »

  1.   

    clob是二进制的,听说是可以恢复出来的
      

  2.   

    把clob中的内容取出来用utl_file包存成doc文件不就行了。
      

  3.   

    clob是字符数据,可以直接读出写到页面上,blob是二进制数据,可以直接存储doc的文件,或者是其他二进制的文件!
      

  4.   

    util_file  不能写二进制文件,
      

  5.   

    如果你能存成功CLOB,写BLOB肯定没问题,读操作差不多的,用GETBINARYSTREAM就可以取到了,然后写入文件中即可,不过用GETBYTES也可以取出来。
      

  6.   

    to:chooser
    能说的详细一点吗?我怎么写入文件呢?
      

  7.   

    FileOutputStream sout=new FileOutputStream("123.doc");
        
        String sql = "select doc_content from tmp_doc where id=111";    Statement stmt = null;    ResultSet rs = null;    try {
            getConnection();//这是我们自己封装的连接方法,你可以自己实现
            System.out.println("connected");        stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);        if (rs.next()) {            int BUFFER_SIZE=100000;
                InputStream in = rs.getBinaryStream(1);
                
                byte b[] = new byte[BUFFER_SIZE];
                for (int i = in.read(b,0,BUFFER_SIZE); i!=-1;) {
                 System.out.println("Read "+i+" bytes.");
                    sout.write(b,0,i);
                    i=in.read(b,0,BUFFER_SIZE);
                }
        sout.flush();
        sout.close();        } else{
            //没有找到指定文档的处理
        }
        } catch (NullPointerException e) {
        } catch (Exception e) {
        } finally {
            try {
                stmt.close();
            } catch (SQLException ee) {
            }
            try {
                conn.close();
            } catch (SQLException ee) {
            }
            System.out.println("Connection Normally Closed.");
        }
        System.out.println("return error");
        return err_img;