rs1 = st.executeQuery(sql);
if (rs1.next()) {
/* 获取此CLOB对象 */
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CONTENT");
/* 更新数据 */ 
应该是rs1.getClob("CONTENT")

解决方案 »

  1.   

    建议使用10g的jdbc驱动,操作clob很方便
      

  2.   

    呵呵,这个地方是我写错了,但改了后,还是同样的问题。oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CONTENT");
    /* 更新数据 */ 
    应该是rs1.getClob("CONTENT")
      

  3.   

    10g的jdbc驱动在哪里有呢,应与8.0版本不会冲突吧
      

  4.   

    不知道你的DBConnect是怎么连接数据库的,如果是weblogic的数据连接池(也就是jndi名称)来获取数据库连接的话,那么 rs.getClob(string)函数获得的是 weblogic 封装了的  clob 对象,你必须把它转换为oracle的clob对象才可以正确的读取:
    Object cb = rs.getClob("CONTENT");
    oracle.sql.CLOB clob = (oracle.sql.CLOB)(weblogic.jdbc.wrapper.Clob) cb).getVendorObj() ;
      

  5.   

    不过如果是我上面说的错误,应该报类型转换错误的
    而现在的错误是报没有序列化对象??奇怪,并且它报的是struts的处理基类!这就更奇怪了
    请问,除了这个页面,其它的都可以正常执行吗?
      

  6.   

    我以前用的是BLOB,可以正常添加修改,但现在改为CLOB后,新增,修改都不行了,很奇怪,请指教。
      

  7.   

    这句错了,FileReader只能接受file对象,而szfgdata.getSUBJECT()可能是String对象。
    ufferedReader in = new BufferedReader(new FileReader(szfgdata.
    getSUBJECT()));