CLOB 一般用来存放超大广西, 如果是2 进制文件一般用BLOB. 假设col2 是CLOB: 写操作: String sql = "insert into tb_commendtemp (col1,col2) values('111',?)"; string s = " 长文本"; StringBufferInputStream sbin = new StringBufferInputStream(s); PreparedStatement ps = query.getPreStmt(sql); ps.setAsciiStream(1,sbin,s.length()); int i = ps.executeUpdate(); ps.close(); sbin.close(); if(i>0) ok; 如果是二进制文件就用FileInputStream 写进去 读的时候只要 rs.getAsciiStream(); rs.getUnicodeStream(); rs.getBinaryStream(); 看它们的名字就知道是得到什么类型的的数据流了. 如果存放的是二进制文件, 比如图形, 执行文件, 压缩文件最好还是blob 保险. 写和读也要用二进制流, DataInputStrean 和DatOutputStream. 有时用UNICODE 的字符流也能行, 但 不保险. 如果是文本, 用Clob 和LONG 都行. 读和写用 BuffreedReader 和PrintWriter 更方便. blob: 二进制, 如果exe,zip clob: 单字节码, 比如一般的文本文件. nlob: 多字节码, 如UTF 格式的文件. 如果带格式的文件如果WORD,EXECL 等如果要保持格式不被破坏, 最好以BLOB 方式, 它近似于以byte 的原始方式存放, 缺点当然是操作时效率低( 慢). 操作CLOB, 别的可以看我上面的写和读的例子, 只要注意把 写pstmt.setBinaryStream() 改成rs.setAsciiStream(); 读pstmt.getBinaryStream() 改成rs.getBinaryStream(); 在从文件读成流的时候用Reader 而不要用DataInuputStream