不可能的,试一下下面代码:
java.sql.Clob c = resultset.getClob(1);
oracle.sql.CLOB clob = (oracle.sql.CLOB) c;

解决方案 »

  1.   

    to GJA106(中文字符):你给的代码我已经试过了,还是报oracle.sql.CLOB clob = (oracle.sql.CLOB) c;这行错啊。郁闷死了,不知道为什么会有这种错的。
      

  2.   

    CLOB clob = ((OracleResultSet)rset).getCLOB (1);
      

  3.   

    这个问题碰到过,忘了当时的解决方式。代码 CLOB clob = ((OracleResultSet)rset).getCLOB (3);是参考Oracle自代的deom,楼主可以自己去查。目录:%ORACLE_HOME%\ora90\jdbc\demo\samples\oci8\object-samples
      

  4.   

    我用了CLOB clob = ((OracleResultSet)rset).getCLOB (1);
    还是报ClassCastException的错啊,请想想看你是怎么解决的吧
      

  5.   

    简单把你的代码发给我吧,留引用包部分和操作CLOB的方法。
    email:[email protected]
      

  6.   

    我已经发email给你了,谢谢你,帮我看看,郁闷死了
      

  7.   

    楼主以下是我的代码,运行正常,在你机器上试一下。import java.util.ArrayList;
    import java.util.Hashtable;
    import java.util.List;
    import java.sql.*;import oracle.jdbc.*;
    import oracle.sql.*;/*import com.ninetowns.czweb.dao.NewsDAO;
    import com.ninetowns.czweb.po.NewsPO;
    import com.ninetowns.czweb.db.*;
    import com.ninetowns.czweb.util.ClobUtil;*/public class Oracle {
    public Oracle() {
    } public boolean addNews() {
    try{
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection  conn =
      DriverManager.getConnection ("jdbc:oracle:thin:@192.168.0.193:1521:oratest","OCP", "OCP");
      PreparedStatement ps = conn.prepareStatement("select NR from test where ID=5");
      ResultSet rs = ps.executeQuery();
      while(rs.next()){
      oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1);
      System.out.println(clob);
      }
      rs.close();
      ps.close();
      conn.close();
    }catch(Exception e){
    e.printStackTrace();
    }finally{

    }
    return true;
    } public static void main(String[] args) {
    Oracle oracle = new Oracle();
    oracle.addNews();
    }
    }
      

  8.   

    我发现问题了,我用的Connection是连接池得到的,就是应为这个才出错的,如果是一般得到的Connection就没有什么问题。还有一个问题是:如何从数据库中读出来Clob,我的clob里面全是字符。我要把clob值给String型,以方便在页面上显示。
      

  9.   

    你如果用的是weblogic容器
    那么oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1);
    替换成:
    weblogic.jdbc.vendor.oracle.OracleThinClob clob=(weblogic.jdbc.vendor.oracle.OracleThinClob )rs.getClob(1);
      

  10.   

    tomcat有类型转换错误.....把你应用程序目录WEB-INF\LIB 下的驱动移走....
      

  11.   

    以下代码是用于产品中的,在weblogic下跑:
    Clob clob = resultset.getClob(1);
    out = ( (weblogic.jdbc.common.OracleClob) clob).getCharacterOutputStream();//读CLOB内容
    Clob myClob = rs.getClob("NR");
    Reader readClob = myClob.getCharacterStream();
    int leg = (int) myClob.length();
    char[] c = new char[ (int) myClob.length()];
    for (int i = 0; i < leg; i++) {
        readClob.read(c);
    }楼主,这些功能Oracle都自带有的!
      

  12.   

    我的奇怪的问题,用了tomcat的连接池就会报类型转换错误,如果直接用连接数据库就没有错。不知道是什么原因,有哪位高手碰到过这样的问题或是知道如何解决的呢?